Debian

無法使用密碼策略覆蓋在 OpenLDAP 中強制更改密碼

  • March 16, 2015

我在 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

引用自:https://serverfault.com/questions/674902