Останніми днями я створив деяку систему 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записи у всіх областях конфігурації Співай , і я також видалений 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