如何在 Linux 下更改过期的 LDAP 用户密码?

如何在 Linux 下更改过期的 LDAP 用户密码?

有人可以给出如何更改已过期的 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”更改密码。但是如果我再次尝试登录,该消息仍然会出现。如果我尝试 ssh 登录,我还会收到以下消息:“您需要立即更改密码(密码已过期)”

然后我更改了密码。但是如果我再次尝试登录,消息仍然存在...

先感谢您。

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

答案1

你的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 服务器配置中获得类似的内容)

overlay ppolicy
ppolicy_default "cn=default,ou=policies,dc=example,dc=com"
ppolicy_use_lockout

其中一些可以保存在本地(在 LDAP 服务器配置中查找moduleload ppolicy.la)。

您可能还缺少允许用户在没有神力的情况下更改密码的功能。您可以通过重置 PAM 来实现,或者(更简单的方法)允许用户在未经身份验证的情况下更改其 userPassword 属性。

access to attrs=userPassword
        by self write
        by anonymous auth
        by users none

access to * by * read

如果您需要更精确的信息,请告诉我:)

答案2

你正在用吗阴影*服务器上的属性?如果是,请确保影子最后更改属性可由用户写入,否则用户密码属性将得到更新而 shadowLastchange 保持不变,在下一次尝试时,客户端工具将使用旧的 shadowLastChange 值计算密码年龄并认为密码需要更改。

相关内容