我们的$HOME文件系统是一个openAFS系统。我从家里的笔记本电脑登录到台式机上,想做一份长时间的工作。因此,为了保护它不受中断会话的影响,我打开了
screen -S session_name然后从那里运行脚本,然后断开屏幕会话。我的问题是,经过相对较短的几个小时之后,会话就失去了与AFS文件系统的联系,所以我不能使用存储在我的$HOME上的脚本中的任何文件。如果我稍后重新连接到会话,我不能列出任何文件或更改目录到我的家园,我只是得到一个权限拒绝错误。
我尝试了以下命令来尝试并重新连接,如果我的桌面登录时间太长,通常会正常工作:
fs checkservers
fs checkvolumes
fs flush但这无助于屏幕会话的重新连接。有人知道我如何在断开连接的屏幕会话中保持对AFS的访问,或者在bash/python脚本中放置一个命令来保持它的活力吗?
发布于 2020-06-09 02:12:16
我建议运行krenew,它可以使用-t标志运行命令,默认情况下是aklog。它通常被打包成起跳包的一部分。
在屏幕会话中运行krenew。确保您获得了可再生 Kerberos票,并且您的机构KDC可能对您的票可以续签的时间有限制。只要Kerberos票证有效,Kerberos就会运行aklog并获得更新的令牌。
如果希望将票证保存很长时间,请确保每次登录时凭证缓存都相同(例如,使用KEYRING),这样,每次ssh登录时,k续期进程都可以访问刷新的tgt。在/etc/krb5.conf中设置默认的ccache名称。
我基本上是用tmux来实现这一点的,我还使用kAFS客户机和OpenAFS作为主目录。
发布于 2020-06-10 11:39:50
所以这是我今天建议的一个解决方案。
首先通过ssh登录到所讨论的计算机
然后运行以下命令来创建一个新的kerberos/AFS会话。
pagsh运行以下命令以再次使用AFS进行身份验证
klog使用以下命令验证您是否有令牌
tokens使用-l选项运行屏幕强制登录外壳程序
screen -l -S session_name启动您的应用程序并断开连接。到目前为止,它似乎起作用了。
https://unix.stackexchange.com/questions/591707
复制相似问题