Ha a /etc/nsswitch.conf
rendelkezik:
passwd: files ldap
ez a sor benne, és én getent passwd
csinálom, először lefuttatja a /etc/passwd
listát, majd végigmegy az LDAP összes felhasználóján? Úgy tűnik, hogy ez történik.
Kipróbáltam egy Red Hat szerveren, és több ezer sort görgetett, amikor a /etc/passwd
csak 36 sor.
Megjegyzések
Válasz
getent
a megadott “adatbázis” eredményeitől függetlenül visszaadja az eredményt. Meghatározza, hogy a /etc/nsswitch.conf
tartalma alapján milyen háttéreket használjon az “adatbázis” összeállításához.
getent
felsorolja az “adatbázisokat”, amikor lekérdezi a használati oldalt, getent --help
.
Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow
Tudomásom szerint nincs wa y kikapcsolhatja a /etc/nsswitch.conf
fájlban konfigurált különféle háttérprogramok összes eredményének megadását.
getent
és a /etc/nsswitch.conf
mindkettő az nss (névszolgáltatás kapcsoló) része.
Kivonat az nss kézikönyv oldaláról
Minden olyan hívást, amely egy olyan rendszert tárol, amely lekérdezi az adatokat egy rendszeradatbázisból, például a jelszót vagy a csoportos adatbázist, a Névszolgáltatás kapcsoló megvalósítása kezeli a GNU C könyvtárban. A különféle szolgáltatásokat független modulok valósítják meg, amelyek mindegyike természetesen nagyban különbözik a másiktól.
A GNU C könyvtár alapértelmezett megvalósításai alapértelmezés szerint konzervatívak és nem használnak nem biztonságos adatokat. Ez bizonyos helyzetekben nagyon költséges lehet, különösen akkor, ha az adatbázisok nagyok. Egyes modulok lehetővé teszik a rendszergazdának, hogy parancsikonokat kérjen, ha ezek biztonságosak. Ekkor a rendszergazda feladata, hogy megbizonyosodjon a feltételezés helyességéről.
Vannak más modulok is, ahol a megvalósítás idővel megváltozott. Ha egy megvalósítás feláldozta a sebességet a memóriafogyasztáshoz, problémákat okozhat, ha a a preferencia át van kapcsolva.
Háttérképek
Ezekből sokféle van, túl sok itt, hogy lefedjük őket. De elég annyit mondani, hogy ott olyan háttérprogramok, mint a sssd
(sss / LDAP), a NIS és a NIS +, hogy csak néhányat említsünk.
Tehát attól függően, hogy a rendszere melyiket adta meg a /etc/nsswitch.conf
fájl hatással lesz arra, hogy az getent
kimenet mit jelenít meg, amikor egy adott “adatbázist” kérdeznek le, például div>.
Hivatkozások
Megjegyzések
- Az sssd howto link megszakadt.
- @GhostLyrics – link megváltozott
Válasz
Igen, ha csak azt mondja, hogy getent passwd
, akkor az összes felhasználót felsorolja, amelyet az nsswitchben felsorolt bármely adatbázisban megtalál.
Megjegyzések
- csak a felsorolást engedélyező NSS-szolgáltatók számára. Például a
sss
paranccsal letilthatja egyes tartományok felsorolását.
getent passwd
felsorolja az összes felhasználó (helyi + ldap)