У меня есть файл /etc/pam.d/password-auth
который говорит об этом (частично). Я добавил номера строк, которых нет в исходном файле.
1 auth required pam_env.so
2 auth required pam_faillock.so preauth audit silent deny=5 unlock_time=900
3 auth [success=1 default=bad] pam_unix.so
4 auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900
5 auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=900
6 auth required pam_deny.so
Я не понимаю, что делает строка 2. Остальные строки я понимаю:
- Установите мои переменные среды
- ???
- Проверьте пароль пользователя. Если пароль хороший, перейдите к строке 5.
- Пароль был плохой. Запишите этот факт в таблицу отказов. Прекратите обработку пароля. Отклонить попытку входа. Если у нас будет 5 неудачных попыток входа в систему, заблокируйте учетную запись на 15 минут.
- Пароль был хорош. Очистите таблицу отказов для этого пользователя. Разрешить ему войти и продолжить. Прекратить обработку.
- Вероятно, нам никогда не следует заходить на эту строку, но если мы это сделаем, то отклоним попытку входа.
Какова цель строки 2? Ни одно из моих испытаний не показало какой-либо конкретной причины иметь это или не иметь его. На странице руководства написано:
Модуль просто проверяет, должен ли пользователь быть заблокирован от доступа к службе, если в последнее время было аномальное количество неудачных последовательных попыток аутентификации.
Я думал что это значит
Проверьте, не заблокирован ли аккаунт. Если учетная запись заблокирована, то не имеет значения, какой пароль введен, мы отклоним попытку входа.
... но это не так. Насколько я могу судить, строка authfail
фактически блокирует учетную запись, и учетная запись не может войти в систему с или без строки preauth
.
Так что (если вообще что-то) делает на самом деле?