Принудительная смена пароля в OpenBSD

Принудительная смена пароля в OpenBSD

На OpenBSD 5.6 мне нужно предоставить ряду учетных записей пользователей пароли по умолчанию. Я хотел бы, чтобы пользователи при первом входе в систему SSH были вынуждены сменить свои пароли со стандартных.

В CentOS и Debian это можно сделать с помощью chage -d 0 $username.

Из руководства login.conf следует, что я смогу добиться того же самого в OpenBSD с помощью чего-то вроде:

  • usermod -f 1 $usernameили
  • usermod -f "Jan 1 2015" $username

При такой настройке действительно происходит соответствующее изменение userinfo $username, но вход в систему как $username через SSH на самом деле не приводит к принудительной смене пароля — оболочка открывается вполне успешно, не обращая внимания на то, что пароль был помечен как неактивный выше.

Некоторые посты 2000 года рассказываютнаписание оболочки входа в системудля принудительной смены пароля. Тем не менее, учитывая очевидные подпорки в usermodи chpass, похоже, что это встроено, но не документировано так широко, как эквиваленты Linux.

Может ли профессионал BSD пролить свет на традиционный подход к этому вопросу?

решение1

Согласно login.conf (5), льготный период по умолчанию для просроченного (т. е. «мертвого») пароля равен 0. Если это значение не установлено в /etc/login.conf, пользователь не сможет войти в систему, чтобы изменить свой пароль, если текущая системная дата больше, чем 6-е поле записи пароля пользователя в /etc/master.passwd- см passwd (5). .

Чтобы решить эту проблему, вам нужно будет указать дату, отформатированную в количестве секунд с эпохи, которая попадает в выбранный вами льготный период, например, 2 недели, который вы также настроите в /etc/login.conf. Чтобы вручную выбрать время истечения срока действия пароля вчера, мы можем использовать:

# date -d yesterday +%s
1463597700

А затем вставьте это значение в поле № 6 /etc/master.passwdс помощью vipw. Соответствующая строка будет выглядеть примерно так:

user:$2b$08$01234567890abcdef:1000:1000::1463597700:0:user:/home/user:/bin/ksh

Запуск usermod, как вы указали ( usermod -f "May 17 2016" user), по сути, сделает то же самое, но в обоих случаях /etc/login.confнеобходимо также изменить его, добавив следующее в default:\соответствующий раздел для вашего класса пользователя:

    :password-dead=2w:\
    :password-warn=2w:

Первая строка предоставляет пользователю льготный период в две недели для смены пароля; вторая строка выдаст предупреждения о том, что срок действия пароля пользователя истекает. Если срок действия истек, ваши пользователи увидят что-то вроде следующего:

WARNING: Your password has expired.
You must change your password now and login again!
Changing local password for user.
Old password:
New password:
Retype new password:
Connection to openbsd-server closed.

Вы также можете настроить :passwordtime=7776000:для /etc/login.confпринудительной дополнительной смены пароля каждые 90 дней. Обратите внимание, что если вам требуются дополнительные проверки сложности пароля пользователя, например, запрет на повторное использование пароля, вам следует установить и настроить passwordqcиз пакетов или другую программу проверки паролей.

Связанный контент