У нас есть система на основе FreeIPA, срок действия пароля администратора истек и его необходимо изменить, но стандартная процедура смены пароля через SSH не работает:
sashka@cellar ~ ssh admin@ipa.xxxxxxxxxx.com
admin@ipa.xxxxxxxxxx.com's password:
Password expired. Change your password now.
Last failed login: Mon Jun 30 15:38:21 MSK 2014 from 116.10.191.195 on ssh:notty
There were 6071 failed login attempts since the last successful login.
Last login: Wed Apr 16 19:28:54 2014
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user admin.
Current Password:
New password:
Retype new password:
Password change failed. Server message: Current password's minimum life has not expired
Password not changed.
passwd: Authentication token manipulation error
Connection to ipa.xxxxxxxxxx.com closed.
Если мы попытаемся изменить пароль, используя passwd
он тоже не работает с тем же сообщением об ошибке:
[admin@ipa ~]$ passwd
Changing password for user admin.
Current Password:
New password:
Retype new password:
Password change failed. Server message: Current password's minimum life has not expired
Password not changed.
passwd: Authentication token manipulation error
[admin@ipa ~]$
Что делать, чтобы разрешить эту ситуацию?
Похоже, вы каким-то образом создали политику паролей с минимальным сроком действия пароля, превышающим максимальный срок действия пароля.
Помните, что максимум указан в дней в то время как минимум указан в часы. Если их перемешать, то это сделать легко.
Чтобы подтвердить это, проверьте существующую политику паролей:
ipa pwpolicy-find
ipa pwpolicy-show global_policy
Войдите в систему со второй учетной записью администратора и измените политику паролей.
Например, чтобы установить минимальный срок службы 7 дней и максимальный 90 дней:
Из командной строки:
ipa pwpolicy-mod global_policy --minlife 168 --maxlife 90
Из веб-интерфейса:
Минимальный срок службы также можно установить на ноль, чтобы отключить его.