Насколько я могу судить, ваша конфигурация выглядит корректно.
Но если вы используете ssh для входа в систему, убедитесь, что UsePAM
установлено в yes
в вашем файле sshd_config
. В противном случае все, что связано с PAM, игнорируется при входе в систему по ssh! По умолчанию это no
.
Модули PAM во FreeBSD работают не так, как в Linux, как мы думали, и на самом деле функционируют так, как описано в документации.
Проблема заключалась в предыдущих модулях в разделе авторизации, касающихся системы OPIE. Эти модули активны по умолчанию и всегда работают для пользователей, которые не инициализируют OPIE в своих учетных записях --, что, честно говоря, есть практически у всех. Это привело к прохождению подраздела аутентификации, даже когда все «обычные» модули аутентификации возвращали ошибку, если эти модули были установлены как «достаточные» или «необязательные».
Решение состояло в том, чтобы удалить строки, ссылающиеся на два модуля OPIE.
Вот ваша проблема: «системный файл был изменен, чтобы включить pam_winbind
и изменить модуль pam_unix
с required
на sufficient
».
Было бы неплохо прочитать главу 4.1 Руководства администратора Linux PAM(да, я знаю, что вы используете FreeBSD ), так что вы может понять детали того, что я объясняю здесь.
Если для параметра pam_unix
установлено значение required
, он немедленно возвращает успех или отказ в зависимости от правильности пароля. Когда вы изменили его на sufficient
, он вернул только успех , но в остальном продолжил. Теперь отказа не было .
Ваш стек auth
теперь может возвращать успех или значение по умолчанию, которое оказывается успех . Чтобы решить эту проблему, добавьте deny
в качестве последней записи стека для auth
# auth
auth sufficient pam_opie.so no_warn no_fake_prompts
auth requisite pam_opieaccess.so no_warn allow_local
auth sufficient pam_unix.so no_warn try_first_pass nullok
auth sufficient pam_winbind.so try_first_pass
auth required pam_warn.so
auth required pam_deny.so
Прокомментируйте запись pam_warn
, если вы не хотите, чтобы PAM регистрировал ошибки аутентификации.
Полезные ключевые слова для стеков PAM
required
-сбой в конечном итоге приведет к тому, что стек вернет сбой , но только после того, как оставшиеся модули будут выполнены requisite
-отказ будет возвращен немедленно sufficient
-успех будет возвращен немедленно, если отказ от required
уже не ожидается