在普通的 linux 机器上,当我sudo -s
作为普通用户使用时,我变成了 root 但HOME
仍然指向~user
,所以每个管理员都有自己的环境等(这是没有env_reset
或always_set_home
设置的)。
在主目录位于 AFS 文件系统上的系统上,如果环境变量KRB5CCNAME
被保留,这也有效,因为 root 可以在/tmp
.
但是如果我sudo
在这样的系统上使用来更改本地非 root 用户(例如特定服务的专用用户),新用户将无法访问 kerberos 缓存(因为它由旧用户拥有并且模式为 600)。但是如果我unset KRB5CCNAME && kinit user && aklog && exec bash
,我可以再次访问我的环境。
所以问题是:是否有一种干净的方法让 sudo 获取我之前拥有的 kerberos 票证并将它们添加到新用户的 kerberos 票证缓存中?
小智 2
据我所知,我认为当前的任何 Kerberos PAM 模块都不支持此功能。不过,我可以看到如何实现它;这本身没有什么不可能的。基本上,pam_krb5
需要获取代码来打开 current 指向的票证缓存KRB5CCNAME
,迭代它,并在初始缓存设置后将找到的每个票证复制到新创建的票证缓存中。
这需要是一个非默认选项,因为您会将您的凭据泄露给目标用户(包括可以成为该用户的任何其他人),这有潜在的危险。
如果您需要立即解决方案,ksu
并且不需要sudo
. ksu
已经支持保留当前的 Kerberos 票证缓存(至少在 MIT Kerberos 版本中)。
归档时间: |
|
查看次数: |
5036 次 |
最近记录: |