Jeśli /etc/nsswitch.conf ma:

passwd: files ldap 

ten wiersz w nim i robię getent passwd czy najpierw spłynie /etc/passwd list, a następnie przejść przez każdego użytkownika w LDAP? Wygląda na to, że tak się dzieje.

Wypróbowałem to na serwerze Red Hat i przewijało tysiące wierszy, gdy /etc/passwd ma tylko 36 wierszy.

Komentarze

  • To, co opisujesz, wydaje mi się całkowicie normalne. Kiedy używasz LDAP, getent passwd wyświetli wszyscy użytkownicy (lokalni + ldap)
  • Dzięki, ' jest bardzo możliwe, że to normalne. Jestem całkiem nowy w używaniu LDAP w Linuksie. Wcześniej udało mi się użytkownicy korzystający z narzędzia do zarządzania konfiguracją.

Odpowiedź

getent zwróci wyniki dla dowolnej określonej „bazy danych”. Na podstawie zawartości /etc/nsswitch.conf określa, jakich backendów użyć podczas tworzenia tej „bazy danych”.

getent wyświetla swoje „bazy danych”, gdy pytasz o stronę użycia, getent --help.

Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow 

O ile mi wiadomo, nie ma wa y, aby wyłączyć jego zachowanie polegające na dostarczaniu wszystkich wyników dla różnych backendów skonfigurowanych w /etc/nsswitch.conf.

getent i /etc/nsswitch.conf są częścią nss (Name Service Switch).

Fragment strony podręcznika nss

Każde wywołanie funkcji, która pobiera dane z systemowej bazy danych, takiej jak baza danych haseł lub grup, jest obsługiwane przez implementację Name Service Switch w bibliotece GNU C. Różne dostarczane usługi są implementowane przez niezależne moduły, z których każdy naturalnie znacznie różni się od innych.

Domyślne implementacje dostarczane z biblioteką GNU C są domyślnie konserwatywne i nie używają niebezpiecznych danych. W niektórych sytuacjach może to być bardzo kosztowne, zwłaszcza gdy bazy danych są duże. Niektóre moduły pozwalają administratorowi systemu zażądać korzystania ze skrótów, jeśli są one znane jako bezpieczne. To administrator systemu jest odpowiedzialny za upewnienie się, że założenie jest poprawne.

Istnieją inne moduły, w których implementacja zmieniała się w czasie. preferencje są przełączane.

Backendy

Jest ich wiele, zbyt wiele, aby je tutaj omówić. Ale wystarczy powiedzieć, że to backendy takie jak sssd (sss / LDAP), NIS i NIS + żeby wymienić tylko kilka.

W zależności od tego, który system określił w /etc/nsswitch.conf plik, wpłynie na to, jakie wyjście getent pokazuje, kiedy dana „baza danych” jest odpytywana, na przykład getent passwd.

Referencje

Komentarze

  • Link do sssd howto nie działa.
  • @GhostLyrics – zmieniony link

Odpowiedz

Tak, jeśli powiesz getent passwd, wyświetli listę wszystkich użytkowników, których może znaleźć, w dowolnej z baz danych wymienionych w nsswitch.

Komentarze

  • tylko dla dostawców NSS, którzy włączają wyliczanie. Na przykład, używając sss, możesz wyłączyć wyliczanie dla niektórych domen.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *