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_ldapz kont LDAP i pam_unixkont lokalnych, a następnie konfiguruję nsswitch.confpobieranie informacji z plików lokalnych i LDAP.
Jeśli dobrze zrozumiałem, LDAP jest używany dwa razy: najpierw pam_ldapprzez 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_ldapbył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_ldapwpisy we wszystkich polach konfiguracji pam, a także usunąłem shadow: ldapz nsswitch.conf. Jak teraz w całym systemie są tylko linie: passwd: ldap filesi group: ldap filesw 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 LDAPUSERgrep LDAPUSER /etc/shadow