我有一台 RHEL (7.9) 服务器,其中远程驱动器被安装为多用户 CIFS 卷。使用多用户 CIFS 共享,用户需要执行附加命令 ( cifscreds add
) 才能访问它。这基本上将用户的密码存储在 Linux 密钥环中。
我找到并实施了一个解决方案(当用户通过 SSH 登录服务器时启动密钥环并存储密码。这是通过 pam_cifscreds 模块完成的。在 /etc/pam.d/sshd 中添加了以下几行以使其正常工作:
auth optional pam_cifscreds.so
.
.
session required pam_keyinit.so force revoke
session required pam_cifscreds.so domain=XYZ
.
.
当用户通过 SSH 连接到服务器时,它工作正常。他们无需明确运行上述命令即可访问挂载。
现在我有另一种情况:用户以超级用户身份登录,并使用 sudo 访问个人用户:例如,使用 root 和 sudo 登录到“user123”。在这种情况下,user123 应该能够访问 CIFS 共享。
我尝试将相同的行添加到 /etc/pam.d/sudo 和 /etc/pam.d/su - 但它不起作用。来自 /var/log/secure 的日志表明 pam 模块无法找到 user123 的密码。
有人可以告知是否可以使用 pam_cifscreds 和 sudo 访问权限吗
答案1
这不可能奏效,su
因为sudo
知道密码用户 123 的身份,因此他们无法将其提供给 PAM 模块。(以 root 身份调用时,将完全跳过身份验证步骤。)
您需要cifscreds add
进入user123的shell后继续使用。
用于keyctl show
确认密钥环已设置并且具有正确的条目。