Останніми днями я створив деяку систему 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 LDAPUSER
grep LDAPUSER /etc/shadow