Довольно давно я спрашивал в ru-root, как в линуксе одному пользователю приделать несколько разных паролей..
Спрашиваете, в чём смысл?? А вот когда в графическом режиме экран заблокирован, то чтобы его разблокировать, надо ввести свой пароль. А при этом может быть включена другая клавиатурная раскладка – скажем, русская, вместо английской, и тогда пароль окажется неправильным, придётся проверять, переключать раскладку и вводить пароль заново. А лень же.
Ну, короче, я вкопался в параметры pam’а и сконфигурировал себе дополнительный пароль по-русски, теперь он тоже успешно работает. Хотя дополнительную проверку я добавил не в конфигурационный файл gdm-password, а в common-auth, который включается практически во все остальные конфигурационные файлы pam’а, и таким образом используется почти всеми программами, проверяющими локальные пароли. Так что он теперь и в ssh работает, и в sudo, и во всём остальном..
Подробности себе на память:
Доставляем пакет libpam-pwdfile, в котором находится модуль pam_pwdfile.so .
В /etc/pam.d/common-auth, где есть стандартный pam_unix, проверяющий пароли в /etc/shadow:
auth [success=1 default=ignore] pam_unix.so nullok_secure
меняем у него параметр success=1 на success=2 – это означает, что при успешном вводе нормального пароля, надо будет пропустить не одну следующую строчку, а две. И вот сразу после этой pam-unix добавляем строчку про pam_pwdfile с указанием нового файла, где будет храниться дополнительный пароль:
auth [success=1 default=ignore] pam_pwdfile.so debug pwdfile=/etc/shadow2
тут success=1 – для пропускания следуюшей стандартной строчки
auth requisite pam_deny.so
Дальше генерируем новый пароль с помощью mkpasswd -m sha-512. Ну, можно и другой метод шифрования использовать, просто у меня в shadow используется $6$, который sha-512.
mkpasswd попросит ввести новый пароль, и выдаст пароль в таком виде:
$id$salt$encrypted-password
id=6 – это sha512, 5 – sh1256, 1 – md5.
Потом копируем строчку про соответствующего пользователя из /etc/shadow в /etc/shadow2, который указан параметром для pam_pwdfile, и заменяем там прежний пароль во втором поле на новый.
Вот и всё.
Оригинал этой записи в личном блоге.
no subject
Ну да, можно добавить ещё пачку pam_pwdfile.so с другими файлами, и в них положить остальные пароли.
no subject
> гном
Как-то прикалывало раньше (а до того - Enlightenment). Но в конечном итоге забил, следуя мудрости Инь Фу Во номер 1.11 :)
no subject
Все четыре пароля работают и для разблокирования экрана, и в ssh.