在 debian 中使用 pam 设置 ldap 身份验证后,一切正常。使用 passwd 命令更改当前用户的 ldap 密码。
问题是我的 ldap 已经设置了一个“admin”帐户和一个具有管理员权限的“root”帐户。由于历史原因我无法改变这一点。
如何让 passwd 仅更改 root 的本地密码,而不更改 ldap 密码?
这是 pam 配置:
account sufficient pam_ldap.so
account sufficient pam_unix.so try_first_pass
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required pam_permit.so
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ck_connector.so nox11
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_ldap.so
答案1
可能有更好的方法,但作为权宜之计,您可以随时编辑该/etc/shadow
文件(以 root 身份)。只需:
用新的加密密码替换第一个和第二个之间的部分:
使用
passwd
,将您自己的密码设置为您想要的新 root 密码(这也会设置您的 LDAP 密码,您将在最后将其设置回来)sudo -s -H
,保持此终端打开,直到更改得到验证!备份
/etc/shadow
至/etc/shadow.org
以 root 身份进行编辑,并将帐户名中的
/etc/shadow
第二个“字段”(介于 之间)复制到 root 的字段:
测试您是否可以使用新密码以 root 身份登录。如果事情不起作用,请复制
/etc/shadow.org
回您登录的终端root
仅在测试后删除
/etc/shadow.org
并注销将您自己的密码恢复为原始密码
passwd
答案2
好吧,经过一番游说,我修改了root账户:
dn: uid=root,ou=people,dc=nope,dc=com
changetype: modrdn
newrdn: uid=administrator
deleteoldrdn: 1
现在我不再有任何问题了。