Принудительное изменение пароля в 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 из пакетов или другой программы проверки паролей.

Другие вопросы по тегам