有人可以给一个build议如何更改LDAP密码已过期?
我有一个LDAP用户,该用户的密码已过期:
# su user You are required to change your password immediately (password aged) su: Authentication token is no longer valid; new one required (Ignored)
那么我可以使用'passwd'来更改密码。 但是,如果我尝试再次login,消息仍然显示。 如果我尝试使用sshlogin,我也会收到以下消息:“您需要立即更改密码(密码过期)”
然后我改变密码。 但是,如果我尝试再次login,消息仍然…
先谢谢你。
PS我也试过了:
user@server$ ldappasswd Please enter your password: ldap_sasl_interactive_bind_s: Invalid credentials (49) additional info: SASL(-13): user not found: no secret in database
你在服务器上使用shadow *属性吗? 如果是,请确保shadowlastchange属性可由用户写入,否则将更新userpassword属性,并且shadowLastchange保持未更改,在下次尝试时,客户端工具使用旧的shadowLastChange值计算密码时限,并认为密码需要是改变。
你错过了你的ldappasswd的一些属性
这只是一个例子
ldappasswd -x -h <host> -D "<rootdn>" -w <rootdn_password> -s <new_password_for_user> "uid=user,ou=People,dc=example,dc=com"
可能你正在使用一些策略(其中一些可以保存在LDAP中 – 例如你在LDAP服务器configuration中有类似的东西)
overlay ppolicy ppolicy_default "cn=default,ou=policies,dc=example,dc=com" ppolicy_use_lockout
其中一些可以保存在本地(在LDAP服务器configuration中查找moduleload ppolicy.la )。
也许你也没有能力让用户更改他们的密码,而无需神的力量。 您可以通过重置PAM或(更简单的方法)来允许用户在不进行身份validation的情况下更改其userPassword属性。
access to attrs=userPassword by self write by anonymous auth by users none access to * by * read
每当你需要更精确的,请让我知道:)