Als /etc/nsswitch.conf
heeft:
passwd: files ldap
deze regel erin, en ik doe getent passwd
zal het eerst de /etc/passwd
lijst en ga dan door elke gebruiker in LDAP? Dat lijkt te zijn wat er gebeurt.
Ik heb het geprobeerd op een Red Hat-server en het scrolde duizenden regels terwijl /etc/passwd
slechts 36 regels is.
Reacties
Antwoord
getent
retourneert wat de resultaten ook zijn voor welke “database” u ook opgeeft. Het bepaalt welke backends moeten worden gebruikt bij het samenstellen van deze “database” op basis van de inhoud van /etc/nsswitch.conf
.
getent
vermeldt zijn “databases” wanneer u de gebruikspagina opvraagt, getent --help
.
Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow
Voor zover ik weet, is er geen wa y om het gedrag van het verstrekken van alle resultaten voor de verschillende backends die zijn geconfigureerd in /etc/nsswitch.conf
uit te schakelen.
getent
en /etc/nsswitch.conf
maken beide deel uit van de nss (Name Service Switch).
Uittreksel uit de man-pagina van nss
Elke aanroep naar een functie die gegevens ophaalt uit een systeemdatabase, zoals het wachtwoord of de groepsdatabase, wordt afgehandeld door de implementatie van de Name Service Switch in de GNU C-bibliotheek. De verschillende aangeboden services worden geïmplementeerd door onafhankelijke modules, die natuurlijk sterk verschillen van de andere.
De standaardimplementaties die bij de GNU C-bibliotheek worden geleverd, zijn standaard conservatief en gebruiken geen onveilige gegevens. Dit kan in sommige situaties erg duur zijn, vooral als de databases groot zijn. Bij sommige modules kan de systeembeheerder verzoeken om snelkoppelingen te maken als deze veilig zijn. Het is dan de verantwoordelijkheid van de systeembeheerder om ervoor te zorgen dat de aanname correct is.
Er zijn andere modules waarvan de implementatie in de loop van de tijd is veranderd. Als een implementatie wordt gebruikt om snelheid op te offeren voor geheugengebruik, kan dit problemen veroorzaken als de voorkeur is omgeschakeld.
Backends
Er zijn er een aantal, te veel om hier te behandelen. Maar het volstaat om te zeggen dat er zijn backends zoals sssd
(sss / LDAP), NIS en NIS + om er maar een paar te noemen.
Dus afhankelijk van wat uw systeem heeft gespecificeerd in uw /etc/nsswitch.conf
bestand, zal van invloed zijn op wat output getent
laat zien wanneer een bepaalde “database” wordt opgevraagd, zoals getent passwd
.
Referenties
Reacties
- De sssd howto-link is dood.
- @GhostLyrics – gewijzigde link
Antwoord
Ja, als je gewoon getent passwd
zegt, zal het een lijst maken van alle gebruikers die het kan vinden in een van de databases in nsswitch.
Opmerkingen
- alleen voor de NSS-providers die opsomming mogelijk maken. Met
sss
kunt u bijvoorbeeld de opsomming voor sommige domeinen uitschakelen.
getent passwd
zal een lijst weergeven alle gebruikers (lokaal + ldap)