Назад | Перейти на главную страницу

Как изменить просроченный пароль пользователя LDAP под Linux?

может кто-нибудь дать совет, как изменить пароль 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, я также получу следующее сообщение: «Вам необходимо немедленно сменить пароль (пароль устарел)»

Потом меняю пароль. Но если я попытаюсь войти еще раз, сообщение останется ...

Заранее спасибо.

P.S. Я также пробовал:

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

Ты используешь тень* атрибуты на сервере? Если да, убедитесь тень атрибут доступен для записи пользователем (ами), в противном случае атрибут 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-сервера)

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

Некоторые из них можно хранить локально (ищите moduleload ppolicy.la в конфигурации сервера LDAP).

Вероятно, вам также не хватает возможности разрешить пользователям менять пароли без Божьей силы. Вы можете сделать это, сбросив PAM или (более простой способ) разрешив пользователям изменять свой атрибут userPassword без аутентификации.

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

access to * by * read

Если вам понадобится более точная информация, дайте мне знать :)