Debian
無法使用密碼策略覆蓋在 OpenLDAP 中強制更改密碼
我在 Debian Stable 上的 OpenLDAP 上實現了密碼策略覆蓋。伺服器端和策略按預期工作。但是,到期後我不能強制使用者更改他們的密碼。使用者登錄後,會收到一條消息,提示其密碼已過期,必須立即更改。但是在本地登錄和 SSH 登錄中,使用者都被踢出。客戶端正在使用 libnss_ldap、pam_ldap。
pwdMustChange
,pwdAllowUserChange
都設置為true
。用於passwd
更改密碼也按預期工作。客戶端配置文件
/etc/nsswitch.conf:
passwd: files ldap group: files ldap shadow: files
/etc/pam.d/common-account:
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
/etc/pam.d/common-auth:
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
/etc/pam.d/common-password:
password [success=2 default=ignore] pam_unix.so obscure sha512 password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass
/etc/pam.d/common-password:
session [default=1] pam_permit.so session requisite pam_deny.so session required pam_permit.so session required pam_mkhomedir.so umask=0022 skel=/etc/skel session required pam_unix.so session optional pam_ldap.so
/etc/libnss-ldap.conf:
base dc=testldap,dc=example,dc=com uri ldap://192.168.56.102/ ldap_version 3 pam_lookup_policy yes pam_password exop
/etc/pam_ldap.conf:
base dc=testldap,dc=example,dc=com uri ldap://192.168.56.102/ ldap_version 3 pam_lookup_policy yes pam_password exop
有任何想法嗎?
我已經解決了這個問題。我唯一需要做的就是
new_authtok_reqd=done
在公共帳戶文件中添加 LDAP 行。因此,生成的文件如下所示,並且一切正常:account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so account [success=1 new_authtok_reqd=done default=ignore] pam_ldap.so account requisite pam_deny.so account required pam_permit.so