Kerberos、.k5login 和 sudo

Kerberos、.k5login 和 sudo

背景:我使用的是 Debian 7 系统,我已使用 和 集成了 LDAP+Kerberos 系统。libnss-ldap我已修改以允许 LDAP 组获得超级用户权限。因此,我可以以 LDAP 组身份登录来管理机器。一切正常,并且使用 LDAP 用户登录很方便。libpam-krb5nscdsudoerssudossh

我刚刚尝试使用.k5login我的用户帐户主目录中的文件Cosmic Ossifrage。在该文件中,我列出了:

[email protected]

这是一个有效的 Kerberos 身份。以该用户身份进行的 SSH 登录可继续正确使用该.k5login文件。

然而,有了这个.k5login文件我的主目录,我不再能够使用它sudo -i来获得超级用户权限。这似乎没有任何意义,因为 .k5login 在我的主目录中,而不是root's 中,所以在我看来,用户rootsudo命令都不应该受到比文件中存在的限制更多的限制sudoers

但是,使用.k5login上述文件后,和都无法正常sudo -i工作sudo su,而之前则可以。.k5login删除文件后,此功能恢复,我sudo又可以正常工作了。

在日志文件中/var/log/auth.log,此时报告的许多错误消息中有一条来自 sudo,指出:

[pam:sudo] krb5_kuserok failed for user cosmic_ossifrage

我是否遗漏了 a 应该做什么的基本定义.k5login?这是预期的行为吗?如果是,为什么?

答案1

按照分数 评论.k5login文件必须满足以下要求:

.k5login 文件每行必须包含一个主体,由用户拥有,并且不能由组或其他人写入(但必须可由任何人读取)。

根据 Kerberos 中的评论源代码

在这种情况下,.k5login除了用户之外,任何人都无法读取该文件Cosmic Ossifrage。存储用户主目录的 NFS 挂载也强制执行 root 压缩,甚至禁止 root 用户访问。通过使文件可供所有人读取,可以sudo恢复 root 功能。

(标记社区维基,因为答案最初来自评论。)

相关内容