无法使用密码策略覆盖在 OpenLDAP 中强制更改密码

无法使用密码策略覆盖在 OpenLDAP 中强制更改密码

我在 Debian Stable 上的 OpenLDAP 上实现了密码策略覆盖。服务器端和策略都按预期工作。但是,过期后我无法强制用户更改密码。用户登录后,会收到一条消息,提示其密码已过期,必须立即更改。但是,无论是在本地登录还是 SSH 登录中,用户都会被踢出。客户端正在使用 libnss_ldap、pam_ldap。pwdMustChangepwdAllowUserChange都设置为true。使用passwd更改密码也按预期工作。

客户端配置文件

/etc/nsswitch.conf:

passwd:         files ldap
group:          files ldap
shadow:         files 

/etc/pam.d/通用帐户:

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/通用密码:

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/通用密码:

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

有任何想法吗?

答案1

我已经解决了这个问题。我唯一需要做的就是在 common-account 文件中添加new_authtok_reqd=doneLDAP 行。因此,生成的文件如下所示,一切正常:

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

相关内容