Se /etc/nsswitch.conf ha:

passwd: files ldap 

questa riga al suo interno, e io getent passwd scorrerò prima nel /etc/passwd list e poi passare attraverso ogni utente in LDAP? Sembra essere quello che succede.

Lho provato su un server Red Hat e stava scorrendo migliaia di righe quando /etc/passwd è composto da sole 36 righe.

Commenti

  • Ciò che descrivi mi sembra perfettamente normale. Quando usi LDAP, getent passwd elencherà tutti gli utenti (local + ldap)
  • Grazie, ' è molto probabile che sia normale. Sono abbastanza nuovo nellusare LDAP con Linux. In precedenza ero riuscito utenti che utilizzano unutilità di gestione della configurazione.

Risposta

getent restituirà qualunque sia il risultato per qualsiasi “database” specificato. Determina quale backend usare quando si costruisce questo “database” in base al contenuto di /etc/nsswitch.conf.

getent elenca i suoi “database” quando interroghi la sua pagina di utilizzo, getent --help.

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

Per quanto ne so, non esiste wa y per disabilitare il comportamento di fornire tutti i risultati per i vari backend configurati in /etc/nsswitch.conf.

getent e /etc/nsswitch.conf fanno entrambi parte di nss (Name Service Switch).

Estratto dalla pagina man di nss

Ogni chiamata a una funzione che recupera i dati da un database di sistema come la password o il database di gruppo è gestita dallimplementazione del Name Service Switch nella libreria GNU C. I vari servizi forniti sono implementati da moduli indipendenti, ognuno dei quali naturalmente varia ampiamente dallaltro.

Le implementazioni predefinite fornite con la libreria GNU C sono di default conservative e non utilizzano dati non sicuri. Ciò potrebbe essere molto costoso in alcune situazioni, soprattutto quando i database sono di grandi dimensioni. Alcuni moduli consentono allamministratore di sistema di richiedere di prendere scorciatoie se si sa che sono sicure. È quindi responsabilità dellamministratore di sistema assicurarsi che il presupposto sia corretto.

Ci sono altri moduli in cui limplementazione è cambiata nel tempo. Se unimplementazione viene utilizzata per sacrificare la velocità per il consumo di memoria, potrebbe creare problemi se il la preferenza è cambiata.

Backend

Ce ne sono una varietà, troppi per essere trattati qui. Ma è sufficiente dire che ci sono backend come sssd (sss / LDAP), NIS e NIS + per citarne alcuni.

Quindi, a seconda di quale sistema ha specificato nel tuo /etc/nsswitch.conf file, influenzerà loutput getent quando viene interrogato un determinato “database”, ad esempio getent passwd.

Riferimenti

Commenti

  • Il link sssd howto è morto.
  • @GhostLyrics – link modificato

risposta

Sì, se dici solo getent passwd, verranno elencati tutti gli utenti che può trovare in uno qualsiasi dei database elencati in nsswitch.

Commenti

  • solo per i provider NSS che abilitano lenumerazione. Ad esempio, con sss, puoi disabilitare lenumerazione per alcuni domini.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *