Pokud /etc/nsswitch.conf
má:
passwd: files ldap
tento řádek a já getent passwd
nejprve spustím /etc/passwd
seznam a poté projít každého uživatele v LDAP? Zdá se, že k tomu dochází.
Zkoušel jsem to na serveru Red Hat a roloval tisíce řádků, když /etc/passwd
má pouze 36 řádků.
Komentáře
Odpověď
getent
vrátí výsledky bez ohledu na to, kterou „databázi“ zadáte. Určuje, jaké backendy se použijí při konstrukci této „databáze“ na základě obsahu /etc/nsswitch.conf
.
getent
vypíše své „databáze“ při dotazu na jeho stránku použití, getent --help
.
Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow
Pokud je mi známo, neexistuje wa y deaktivovat jeho chování poskytování všech výsledků pro různé backendy, které jsou konfigurovány v /etc/nsswitch.conf
.
getent
a /etc/nsswitch.conf
jsou oba součástí nss (Name Service Switch).
Výňatek z man stránky nss
Každé volání funkce, která načítá data ze systémové databáze, jako je databáze hesel nebo skupin, je zpracována implementací přepínače jmenných služeb v knihovně GNU C. Různé poskytované služby jsou implementovány nezávislými moduly, z nichž každý se přirozeně velmi liší od ostatních.
Výchozí implementace přicházející s knihovnou GNU C jsou standardně konzervativní a nepoužívají nebezpečná data. To může být v některých situacích velmi nákladné, zvláště když jsou databáze velké. Některé moduly umožňují správci systému požádat o převzetí zkratek, pokud je známo, že jsou bezpečné. Poté je odpovědností správce systému zajistit, aby byl předpoklad správný.
Existují i jiné moduly, u kterých se implementace časem měnila. Pokud by implementace obětovala rychlost spotřeby paměti, mohla by způsobit problémy, pokud preference je přepnuta.
Backends
Existuje celá řada z nich, příliš mnoho na to, abychom je zde mohli pokrýt. jsou backendy jako sssd
(sss / LDAP), NIS a NIS +, abychom jmenovali alespoň některé.
Takže podle toho, co váš systém ve vašem /etc/nsswitch.conf
soubor, bude mít vliv na to, jaký výstup getent
zobrazí při dotazování na danou „databázi“, například getent passwd
.
Reference
Komentáře
- Odkaz sssd howto je mrtvý.
- @GhostLyrics – změněný odkaz
Odpovědět
Ano, pokud řeknete getent passwd
, zobrazí seznam všech uživatelů, které najde v libovolné databázi uvedené v nsswitch.
Komentáře
- pouze pro poskytovatele NSS, kteří umožňují výčet. Například pomocí
sss
můžete u některých domén deaktivovat výčet.
getent passwd
všichni uživatelé (místní + ldap)