LDAP 运行时无法执行 su

LDAP 运行时无法执行 su

我使用 ldap 时遇到问题,当它处于在线状态时,我使用用户/密码从 LDAP 数据库登录,然后无法使用本地密码 su 到 root。当我将 LDAP 切换为离线时,我可以使用本地用户/密码登录,然后使用本地密码 su 到 root。auth.log:

Sep 27 12:18:33 intranet sshd[18321]: pam_unix(sshd:session): session opened for user mejmo by (uid=0)
Sep 27 12:18:39 intranet unix_chkpwd[18340]: check pass; user unknown
Sep 27 12:18:39 intranet unix_chkpwd[18340]: password check failed for user (root)
Sep 27 12:18:39 intranet su[18339]: pam_unix(su:auth): authentication failure; logname=mejmo uid=10009 euid=10009 tty=/dev/pts/1 ruser=mejmo rhost=  user=r
Sep 27 12:18:42 intranet su[18339]: pam_authenticate: Permission denied
Sep 27 12:18:42 intranet su[18339]: FAILED su for root by mejmo

我正在输入好的密码,因为当 LDAP 服务器离线时我可以登录。请帮忙,快疯了……

编辑:我发现,当我也在本地创建用户时,将 LDAP 转为在线,然后我就可以 su 到 root。我认为问题是 pam_unix 看不到使用 su 的用户,因为 passwd 中没有条目,但 nssswitch.conf 正常(passwd、shadow 等上的文件 ldap)。

编辑2:

account         sufficient      pam_ldap.so debug
account         sufficient      pam_unix.so audit

auth    sufficient      pam_ldap.so
auth    sufficient      pam_unix.so audit likeauth use_first_pass
auth    required        pam_deny.so

EDIT3:它可以与 nscd 一起运行,但它会生成令人讨厌的日志,有时我无法登录...nscd 的问题可能出在哪里?:(

Sep 27 16:27:35 intranet sshd[25830]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Sep 27 16:27:35 intranet sshd[25830]: pam_ldap: reconnecting to LDAP server...
Sep 27 16:27:35 intranet sshd[25830]: pam_ldap: ldap_simple_bind Can't contact LDAP server

答案1

您确定首先检查本地身份验证,然后再检查 LDAP 后端吗?

检查你的 /etc/nsswitch.conf

它应该显示:

密码:文件 ldap 组:文件 ldap 影子:文件 ldap

或者也可以是“兼容”选项

编辑:

nscd 一直是我的 RHEL 机器上的问题根源,它会产生一些你从未预料到的错误。所以答案是肯定的,nscd 可能是导致这种奇怪行为的原因。你应该在测试期间尝试清理 nscd 的缓存。

nscd -i 密码 nscd -i 组

答案2

LDAP 中的用户是否属于正确的组,可以执行 su 转换为 root 吗?

通常这是轮子组,但在您的环境中可能会有所不同。

相关内容