Hvis /etc/nsswitch.conf har:

passwd: files ldap 

denne linje i den, og jeg gør getent passwd vil den først køre ned /etc/passwd liste og derefter gennemgå alle brugere i LDAP? Det ser ud til at være, hvad der sker.

Jeg prøvede det på en Red Hat-server, og det rullede tusinder af linjer, når /etc/passwd kun er 36 linjer.

Kommentarer

  • Det, du beskriver, virker for mig helt normalt. Når du bruger LDAP, vises getent passwd alle brugere (lokal + ldap)
  • Tak, det ' er meget muligt, at det er normalt. Jeg er ret ny til at bruge LDAP med Linux. Tidligere klarede jeg brugere, der bruger et konfigurationsstyringsværktøj.

Svar

getent returnerer uanset resultaterne for den “database”, du angiver. Den bestemmer, hvilken backends der skal bruges, når du konstruerer denne “database” baseret på indholdet af /etc/nsswitch.conf.

getent viser sine “databaser”, når du forespørger om dens brugsside, getent --help.

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

Efter min viden er der ingen wa y for at deaktivere dens adfærd ved at levere alle resultaterne til de forskellige backends, der er konfigureret i /etc/nsswitch.conf.

getent og /etc/nsswitch.conf er begge en del af nss (Name Service Switch).

Uddrag fra nss man-side

Hvert opkald til en funktion, der henter data fra en systemdatabase som adgangskoden eller gruppedatabasen, håndteres af implementeringen af Name Service Switch i GNU C-biblioteket. De forskellige tjenester, der leveres, implementeres af uafhængige moduler, som naturligvis varierer meget fra hinanden.

Standardimplementeringerne, der følger med GNU C-biblioteket, er som standard konservative og bruger ikke usikre data. Dette kan være meget dyrt i nogle situationer, især når databaser er store. Nogle moduler tillader systemadministratoren at anmode om genveje, hvis disse vides at være sikre. Det er derefter systemadministratorens ansvar at sikre, at antagelsen er korrekt.

Der er andre moduler, hvor implementeringen ændrede sig over tid. Hvis en implementering bruges til at ofre hastighed for hukommelsesforbrug, kan det skabe problemer, hvis præferencen er skiftet.

Backends

Der er en række af disse, for mange til at dække her. Men nok til at sige, der er backends som sssd (sss / LDAP), NIS og NIS + for at nævne nogle få.

Så afhængigt af hvilket dit system har specificeret i din /etc/nsswitch.conf -fil vil have indflydelse på, hvad output getent viser, når en given “database” spørges, f.eks. getent passwd.

Referencer

Kommentarer

  • Sssd-linket er dødt.
  • @GhostLyrics – ændret link

Svar

Ja, hvis du bare siger getent passwd, viser den alle de brugere, den kan finde i nogen af de databaser, der er anført i nsswitch.

Kommentarer

  • kun for NSS-udbydere, der muliggør optælling. For eksempel kan du med sss deaktivere optælling for nogle domæner.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *