В последние дни я настроил систему Linux с аутентификацией LDAP, и все работает отлично, но я все еще не могу понять, что касается NSS и PAM, даже после долгих исследований.
Цитирование:
NSS позволяет администраторам указывать список источников, в которых будут храниться и искать файлы аутентификации, имена хостов и другую информацию.
а также
PAM - это набор библиотек, которые обеспечивают настраиваемую платформу аутентификации для приложений и базовой операционной системы.
Я не понимаю, как PAM и NSS работают и взаимодействуют друг с другом. В этой книге архитектура объясняется довольно хорошо: я настраиваю PAM для использования pam_ldapдля учетных записей LDAP и pam_unixдля локальных учетных записей, затем я настраиваю nsswitch.confдля получения информации из локальных файлов и LDAP.
Если я правильно понял, LDAP используется дважды: сначала pam_ldapNSS, который сам вызывается из него 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 LDAPUSERgrep LDAPUSER /etc/shadow