LINUX.ORG.RU
ФорумAdmin

linux не предлагает ввести новый пароль по истечении срока старого


0

1

Доброго времени суток! При создании нового пользователя ограничиваю срок действия пароля командой chage -I 0 -M 90 -W 14 user. По идее после окончания срока действия пароля при входе под этим пользователем система должна предлагать ввести новый пароль, но когда я захожу под этим пользователем по ssh система просто спрашивает пароль, я ввожу (старый) пароль и соединение по ssh разрывается, putty выдает сообщение «Server unexpectedly close network connection». Если ввести не старый, а просто какой-нибудь заведомо неправильный пароль, то в консоли пишется «Access denied» и предлагается вновь ввести пароль. К сожалению, зайти на сервер локально и посмотреть, что при этом происходит нет возможности.

Подскажите, пожалуйста, почему так происходит, можно ли это как то исправить и как после этого разблокировать пользователя.

Вы хотя бы 'man chage' читали ?

НАЗВАНИЕ
       chage - изменяет информацию об устаревании пароля пользователя

СИНТАКСИС
       chage [параметры] [LOGIN]

ОПИСАНИЕ
       Программа The chage изменяет количество дней между датой следующей
       смены пароля и датой последней смены пароля. Эта информация
       используется системой для определения момента, когда пользователь
       должен сменить свой пароль.
...
       -M, --maxdaysМАКС_ДНЕЙ
           Установить максимальное число дней работоспособности пароля. Если
           сумма значений МАКС_ДНЕЙ и ПОСЛ_ДЕНЬ раньше текущего дня, то
           пользователю придётся изменить свой пароль перед использованием
           учётной записи. Для того, чтобы это не было неожиданностью можно
           воспользоваться параметром -W, который активирует выдачу
           предупреждения о смене пароля пользователя заранее.

           Указание значения -1 в параметре МАКС_ДНЕЙ отменяет проверку
           пароля.

       -W, --warndaysПРЕДУП_ДНЕЙ
           Установить число дней выдачи предупреждения, перед тем как
           потребуется смена пароля. Параметр ПРЕДУП_ДНЕЙ задаётся в днях, в
           течении которых пользователь будет получать предупреждение об
           устаревании пароля, перед тем как это случится.

Т.е. вы сказали, что максимальный срок действия пароля 90 дней, за 14 дней до истечения срока будет выводиться предупреждение о том, что срок пароля истекает, за это время пользователь САМ должен сменит свой пароль, т.е. дать команду:
passwd
и сменить пароль.

Если он его не сменил, то вход запрещается. Теперь можете зайти под root и отключить блокировку пользователя:

chage -m 0 -M 99999 -I -1 -E -1 <имя_пользователя>
и выставить новый пароль:
passwd <имя_пользователя>

kostik87 ★★★★★ ()

админ должен продлять/менять пароль пользователя, иначе опция бессмыслена.

prf2501 ()
Ответ на: комментарий от kostik87

Читали, но видимо, плохо) Спасибо за помощь!

А теоретически существует ли способ сделать так, чтобы система предлагала ввод нового пароля после окончания старого? может, для этого какие-то другие команды нужно использовать

Incher ()
Ответ на: комментарий от Incher

Т.е. предупреждения о том, что через столько-то дней учётная запись будет заблокирована, если вы не смените пароль, вам мало ?

Ну пишите какой-либо скрипт, который посредством 'chage -l $USERNAME' будет анализировать сколько осталось времени до истечения срока действия пароля и предлагать его сменить.

После чего можете поместить его в ~/.bashrc или ~/.bash_profile.

kostik87 ★★★★★ ()

Скорее всего хотелку со сменой пароля можно реализовать через PAM, но я затрудняюсь сказать какие конкретно опции каких pam-модулей надо курить.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от kostik87

Т.е. предупреждения о том, что через столько-то дней учётная запись будет заблокирована, если вы не смените пароль, вам мало ?

ЕМНИП, Винда обычно делает так: если у тебя истёк срок действия пароля, то ты зайти в систему ещё можешь, но при входе обязан немедленно сменить пароль.

proud_anon ★★★★★ ()
Ответ на: комментарий от proud_anon

Это не винда. Здесь другое поведение, почитайте 'man chage', хотя бы сокращённую:

chage 
Использование: chage [параметры] ПОЛЬЗОВАТЕЛЬ

Параметры:
  -d, --lastday ПОСЛ_ДЕНЬ       установить последний день смены пароля
                                в ПОСЛ_ДЕНЬ
  -E, --expiredate ДАТА_УСТ     установить дату окончания действия
                                учётной записи в ДАТА_УСТ
  -h, --help                    показать данное сообщение и закончить работу
  -I, --inactive НЕАКТИВНОСТЬ   установить неактивность пароля после
                                устаревания в значение НЕАКТИВНОСТЬ
  -l, --list                    показать «возраст» учётной записи
  -m, --mindays МИН_ДНЕЙ        установить минимальное число дней перед
                                сменой пароля в МИН_ДНЕЙ
  -M, --maxdays МАКС_ДНЕЙ       установить максимальное число дней перед
                                сменой пароля в МАКС_ДНЕЙ
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -W, --warndays ПРЕДУП_ДНЕЙ    установить количество дней с выдачей
                                предупреждения в ПРЕДУП_ДНЕЙ

Здесь только писать скрипт, например не выставлять ключ '-I', что бы учётка не блокировалась, а в .bashrc написать обработчик, который при входе в систему обрабатывает вывод 'chage -l' и запускает 'passwd' по истечению срока действия пароля.

Ну либо разбираться с pam, но я не нашёл такого модуля, так что в таком случае нужно писать свой.

kostik87 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.