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

  • Wat je beschrijft lijkt mij volkomen normaal. Wanneer je LDAP gebruikt, getent passwd zal een lijst weergeven alle gebruikers (lokaal + ldap)
  • Bedankt, het is ' heel goed mogelijk dat het normaal is. Ik ben vrij nieuw in het gebruik van LDAP met Linux. Eerder lukte het me gebruikers die een hulpprogramma voor configuratiebeheer gebruiken.

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *