В последние дни я настроил систему Linux с аутентификацией LDAP, и все работает отлично, но я все еще не могу понять, что касается NSS и PAM, даже после долгих исследований.
Цитирование:
NSS позволяет администраторам указывать список источников, в которых будут храниться и искать файлы аутентификации, имена хостов и другую информацию.
а также
PAM - это набор библиотек, которые обеспечивают настраиваемую платформу аутентификации для приложений и базовой операционной системы.
Я не понимаю, как PAM и NSS работают и взаимодействуют друг с другом. В этой книге архитектура объясняется довольно хорошо: я настраиваю PAM для использования pam_ldap
для учетных записей LDAP и pam_unix
для локальных учетных записей, затем я настраиваю nsswitch.conf
для получения информации из локальных файлов и LDAP.
Если я правильно понял, LDAP используется дважды: сначала pam_ldap
NSS, который сам вызывается из него pam_unix
. Это правильно? Действительно ли LDAP используется дважды? Но почему мне нужно настроить NSS и PAM? Я объясняю, что PAM выполняет другие задачи, чем NSS, и используется другими программами. Но тогда должно быть возможно использовать только NSS или только PAM, как я прочитал на этой странице .
Поэтому я немного поэкспериментировал и сначала попытался удалить LDAP из nsswitch.conf
(и аутентификация перестала работать, как будто только pam_ldap недостаточно для выполнения этой работы). Затем я снова включил LDAP в NSS и удалил его из конфигурации PAM (на этот раз все работало нормально, как будто pam_ldap
бесполезно, а NSS достаточно для аутентификации пользователя).
Есть ли кто-нибудь, кто может помочь мне прояснить это? Спасибо заранее.
ОБНОВИТЬ
Я только что попробовал сейчас. Я снова удалил все pam_ldap
записи во всех полях конфигурации PAM, и я также удалил shadow: ldap
из nsswitch.conf
. Как и сейчас во всей системе есть только строки: passwd: ldap files
и group: ldap files
в nsswitch.conf
. Ну ... логин с пользователями LDAP работает отлично, этих двух строк (плюс /etc/ldap.conf
) достаточно для настройки аутентификации LDAP.
Насколько мне известно, PAM независим от NSS, но мои тесты показали, что это не так. Поэтому я спрашиваю себя, возможно ли полностью отключить NSS и использовать только PAM?
getent shadow | grep LDAPUSER
grep LDAPUSER /etc/shadow