Om /etc/nsswitch.conf har:

passwd: files ldap 

den här raden i den, och jag gör getent passwd kommer den först att springa ner /etc/passwd lista och sedan gå igenom alla användare i LDAP? Det verkar vara vad som händer.

Jag provade det på en Red Hat-server och det rullade tusentals rader när /etc/passwd bara är 36 rader.

Kommentarer

  • Vad du beskriver verkar för mig helt normalt. När du använder LDAP kommer getent passwd att visas alla användare (lokal + ldap)
  • Tack, det ' är mycket möjligt att det är normalt. Jag är ganska ny på att använda LDAP med Linux. Tidigare lyckades jag användare som använder ett konfigurationshanteringsverktyg.

Svar

getent returnerar oavsett resultatet för vilken ”databas” du anger. Den avgör vilken bakgrund som ska användas när du konstruerar denna ”databas” baserat på innehållet i /etc/nsswitch.conf.

getent listar sina ”databaser” när du frågar efter användningssidan, getent --help.

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

Så vitt jag vet finns det ingen wa y för att inaktivera dess beteende att tillhandahålla alla resultat för de olika backenderna som är konfigurerade i /etc/nsswitch.conf.

getent och /etc/nsswitch.conf är båda en del av nss (Name Service Switch).

Utdrag från nss mansida

Varje samtal till en funktion som hämtar data från en systemdatabas som lösenord eller gruppdatabas hanteras av implementeringen av Name Service Switch i GNU C-biblioteket. De olika tjänsterna som tillhandahålls implementeras av oberoende moduler, var och en varierar naturligtvis mycket från varandra.

Standardimplementeringarna som följer med GNU C-biblioteket är som standard konservativa och använder inte osäkra data. Detta kan vara mycket kostsamt i vissa situationer, särskilt när databaserna är stora. Vissa moduler tillåter systemadministratören att begära genvägar om det är känt att dessa är säkra. Det är då systemadministratörens ansvar att se till att antagandet är korrekt.

Det finns andra moduler där implementeringen förändrades över tiden. Om en implementering används för att offra hastigheten för minneskonsumtion kan det skapa problem om preferens är bytt.

Backends

Det finns en mängd av dessa, för många för att täcka här. Men det räcker att säga är backends som sssd (sss / LDAP), NIS och NIS + för att nämna några.

Så beroende på vilket ditt system har angett i din /etc/nsswitch.conf -fil, kommer att påverka vilken utdata getent visar när en viss ”databas” frågas, till exempel getent passwd.

Referenser

Kommentarer

  • Sssd-hur-länken är död.
  • @GhostLyrics – ändrad länk

Svar

Ja, om du bara säger getent passwd, kommer den att lista alla användare som de kan hitta i någon av de databaser som listas i nsswitch.

Kommentarer

  • endast för NSS-leverantörer som möjliggör uppräkning. Med sss kan du till exempel inaktivera uppräkning för vissa domäner.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *