W ostatnich dniach skonfigurowałem system Linux z uwierzytelnianiem LDAP i wszystko działa dobrze, ale wciąż jest coś, czego tak naprawdę nie mogę zrozumieć w odniesieniu do NSS i PAM, również po wielu badaniach.
Powołując się:
NSS pozwala administratorom określić listę źródeł, w których pliki uwierzytelniania, nazwy hostów i inne informacje będą przechowywane i wyszukiwane
i
PAM to zestaw bibliotek, które zapewniają konfigurowalną platformę uwierzytelniania dla aplikacji i systemu operacyjnego
To, czego nie rozumiem, to to, jak PAM i NSS współpracują ze sobą. W tej książce architektura została wyjaśniona całkiem dobrze: konfiguruję PAM do korzystania pam_ldap
z kont LDAP i pam_unix
kont lokalnych, a następnie konfiguruję nsswitch.conf
pobieranie informacji z plików lokalnych i LDAP.
Jeśli dobrze zrozumiałem, LDAP jest używany dwa razy: najpierw pam_ldap
przez NSS, który sam jest wywoływany z pam_unix
. Czy to prawda? Czy LDAP naprawdę jest używany dwukrotnie? Ale dlaczego muszę skonfigurować zarówno NSS, jak i PAM? Wyjaśniam, że PAM wykonuje inne zadania niż NSS i jest używany przez inne programy. Ale wtedy powinno być możliwe używanie tylko NSS lub tylko PAM, jak czytałem na tej stronie .
Więc poeksperymentowałem trochę i najpierw próbowałem usunąć LDAP z nsswitch.conf
(a uwierzytelnianie zatrzymało się, jakby tylko pam_ldap nie wystarczyło do wykonania zadania). Następnie ponownie włączyłem LDAP w NSS i usunąłem go z konfiguracji PAM (tym razem wszystko działało dobrze, jakby pam_ldap
było bezużyteczne, a NSS wystarczy do uwierzytelnienia użytkownika).
Czy jest ktoś, kto może mi pomóc to wyjaśnić? Z góry bardzo dziękuję.
AKTUALIZACJA
Właśnie próbowałem coś teraz. Ponownie usunąłem wszystkie pam_ldap
wpisy we wszystkich polach konfiguracji pam, a także usunąłem shadow: ldap
z nsswitch.conf
. Jak teraz w całym systemie są tylko linie: passwd: ldap files
i group: ldap files
w nsswitch.conf
. Cóż ... logowanie do użytkowników LDAP działa idealnie, te dwie linie (plus /etc/ldap.conf
) wystarczą, aby skonfigurować uwierzytelnianie LDAP.
Z mojej wiedzy PAM jest niezależny od NSS, ale moje testy wykazały, że nie. Więc zadaję sobie pytanie, czy można całkowicie wyłączyć NSS i używać tylko PAM?
getent shadow | grep LDAPUSER
grep LDAPUSER /etc/shadow