我有以下情况,我有一个正在运行的GNU屏幕会话,我不能再访问AFS了-我的令牌过期了。不过,我可以从一个新的shell访问它。与这个问题不同的是,我没有Kerberos票证(嗯,不是针对aklog正在寻找的领域),所以我不能调用aklog。我也买不到这样的票。我不知道战地服务团是如何建立的,但它起作用了。
现在,Kerberos票证“存储”在/tmp/krb5cc*中,并被一个名为KRB5CCNAME的变量指向。如果Kerberos和screen/tmux有此问题,可以执行kinit,也可以通过设置KRB5CCNAME将较新的票证移植到旧的shell中。
我想知道如何指向AFS凭据,以及是否可以同样地将它们从外壳(我ssh进入的外壳,它具有AFS访问权限)移植到内部shell (在screen -r之后获得的证书,它没有更多的AFS访问权限)。两个shell之间似乎没有相关的环境变量发生更改。strace tokens告诉我,它只是访问/proc/fs/openafs/afs_ioctl,这意味着它与进程绑定在一起,并且使用了一个特殊的内核特性,这将使它变得非常困难。有什么办法可以让AFS访问回到我的外壳,而不关闭它和打开一个新的?
发布于 2018-05-07 17:55:28
当您通过ssh和pam_afs_session.so登录时,它将生成一个Kerberos票据,并使用它来生成AFS令牌。注销时,它将同时删除Kerberos票证和AFS令牌。
正如您已经注意到的,Kerberos票证存储在文件中,AFS令牌存储在内核中,存储在PAG ()中。当您通过第二个SSH会话进行连接时,pam_afs_session.so库将在一个新文件中创建一个新的Kerberos票据,在一个新的PAG中创建一个新的AFS令牌。
在GNU屏幕会话中保持AFS令牌活动的最简单方法是:
https://unix.stackexchange.com/questions/219410
复制相似问题