debian – Kerberos,.k5login和sudo

背景:我使用的是Debian 7系统,我使用libnss-ldap,libpam-krb5和nscd与LDAP Kerberos系统集成.我修改了sudoers以允许LDAP组权限sudo并获得超级用户权限.因此,我可以作为LDAP组登录来管理机器.这一切都运行正常,ssh登录适用于LDAP用户.

我只是在我的用户帐户Cosmic Ossifrage的主目录中试验.k5login文件.在文件中,我列出了:

cosmic_ossifrage@REALM.COM

这是一个有效的Kerberos标识. SSH登录,因为此用户继续正确使用.k5login文件.

但是,使用我的主目录中的.k5login文件,我无法再使用sudo -i获得超级用户权限.这似乎没有任何意义,因为.k5login在我的主目录中,而不是root目录,所以在我看来,root用户和sudo命令都不应该被限制在sudoers文件中. .

但是,使用上面的.k5login文件,sudo -i和sudo su都没有工作,而他们以前也没有.删除.k5login文件后,此功能已恢复,我可以再次sudo.

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

[pam:sudo] krb5_kuserok Failed for user cosmic_ossifrage

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

解决方法

根据 Mark’s comment,.k5login文件必须满足以下要求:

The .k5login file must contain one principal per line,be owned by user,and not be writable by group or other (but must be readable by anyone).

根据Kerberos source code中的注释.

在这种情况下,除了Cosmic Ossifrage用户之外,任何人都无法读取.k5login文件.存储用户主目录的NFS安装也强制执行root压缩,甚至禁止root用户访问.通过使文件具有全局可读性,返回了sudo to root功能.

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

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...