Назад | Перейти на главную страницу

passwd запрашивает новый пароль 4 раза

У меня просто был странный опыт. Я создал нового пользователя на сервере (Ubuntu 10.04, установлен Plesk), а затем хотел установить пароль. Посмотрите на этот вывод:

# useradd dev
# passwd dev
Enter new password:
Retype new password:
Geben Sie ein neues UNIX-Passwort ein: 
Geben Sie das neue UNIX-Passwort erneut ein:

Пришлось вводить пароль 4 раза. Последние 2 подсказки на немецком языке. Пароль для двух последних запросов должен отличаться от пароля, заданного первым. Что тут происходит?

update: # cat /etc/pam.d/passwd # # Файл конфигурации PAM для службы Shadow `passwd '#

@include common-password

# cat /etc/pam.d/system-auth
cat: /etc/pam.d/system-auth: Datei oder Verzeichnis nicht gefunden

(/etc/pam.d/system-auth не существует) Btw. Могу ли я каким-то образом настроить весь такой вывод на английский, не меняя языковой стандарт системы (что может повлиять на другие вещи)?

update2:

# cat /etc/pam.d/common-password 

# here are the per-package modules (the "Primary" block)
password optional pam_plesk.so try_first_pass
password        [success=1 default=ignore]      pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password        required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config

Похоже, виноват Plesk. Верный?

В passwd команда использует PAM (подключаемые модули аутентификации), которые запрашивают у пользователя пароли и обновляют хэши паролей в /etc/shadow и / или любые другие серверы аутентификации, которые вы настроили. PAM для passwd команда настроена в /etc/pam.d/passwd, который в вашем случае просто включает /etc/pam.d/common-password.

Вы можете прочитать краткое введение о PAM с man 7 pam.

Сейчас я не знаком с Plesk, и я все еще немного любитель, когда дело касается PAM, но я был бы склонен поменять местами первые две непустые строки без комментариев, чтобы pam_unix приходит раньше pam_plesk:

...
# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so obscure sha512
password        optional                        pam_plesk.so try_first_pass
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
...

Я вам скажу почему. Ты видишь это try_first_pass вариант после pam_plesk? Это означает, что если этот конкретный модуль запускается после другого, уже запрашивающего пароль пользователя, то он должен попытаться повторно использовать этот пароль вместо повторного запроса. Однако поскольку pam_plesk запускается первым, нет уже введенного пароля, поэтому вы получите первые два запроса. А потом pam_unix работает, и у него нет try_first_pass либо, поэтому вы получите два других запроса.

В качестве альтернативы вы можете попробовать добавить try_first_pass к pam_unix линия.

Сделайте резервную копию common-passwd на всякий случай, чтобы вы могли отменить изменения, если они не работают. У меня нет доступа к Plesk, поэтому я не могу самостоятельно протестировать предлагаемые изменения.