Dacă /etc/nsswitch.conf
are:
passwd: files ldap
această linie în ea și fac getent passwd
va rula mai întâi /etc/passwd
lista și apoi parcurgeți fiecare utilizator din LDAP? Se pare că așa se întâmplă.
Am încercat-o pe un server Red Hat și derula mii de linii când /etc/passwd
are doar 36 de linii.
Comentarii
Răspuns
getent
va returna oricare ar fi rezultatele pentru orice „bază de date” pe care o specificați. Determină ce backend-uri trebuie utilizate atunci când construiți această „bază de date” pe baza conținutului /etc/nsswitch.conf
.
getent
afișează „bazele de date” ale acestuia atunci când interogați pagina de utilizare, getent --help
.
Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow
Din câte știu eu, nu există wa y pentru a dezactiva comportamentul său de a furniza toate rezultatele pentru diferitele backend-uri care sunt configurate în /etc/nsswitch.conf
.
getent
și /etc/nsswitch.conf
ambele fac parte din nss (Comutator de serviciu de nume).
Extras din pagina de manual nss
Fiecare apel către o funcție care preia date dintr-o bază de date de sistem, cum ar fi parola sau baza de date de grup, este gestionată de implementarea Name Service Switch din biblioteca GNU C. Diferitele servicii furnizate sunt implementate de module independente, fiecare dintre acestea diferă în mod natural foarte mult de celelalte.
Implementările implicite care vin cu biblioteca GNU C sunt în mod implicit conservatoare și nu utilizează date nesigure. Acest lucru ar putea fi foarte costisitor în unele situații, mai ales atunci când bazele de date sunt mari. Unele module permit administratorului de sistem să solicite accesarea comenzilor rapide, dacă se știe că acestea sunt sigure. Atunci este responsabilitatea administratorului de sistem să se asigure că presupunerea este corectă.
Există alte module în care implementarea s-a schimbat în timp. Dacă o implementare a sacrificat viteza pentru consumul de memorie, ar putea crea probleme dacă preferința este schimbată.
Backends
Există o varietate de acestea, prea multe pentru a fi acoperite aici. Dar este suficient să spunem, acolo sunt backend-uri precum sssd
(sss / LDAP), NIS și NIS + pentru a numi câteva.
Deci, în funcție de sistemul pe care l-a specificat în /etc/nsswitch.conf
, va influența ceea ce afișează ieșirea getent
atunci când este interogată o anumită „bază de date”, cum ar fi getent passwd
.
Referințe
Comentarii
- Link-ul sssd howto este mort.
- @GhostLyrics – link modificat
Răspunde
Da, dacă spuneți doar getent passwd
, acesta va lista toți utilizatorii pe care îi poate găsi în oricare dintre bazele de date listate în nsswitch.
Comentarii
- numai pentru furnizorii NSS care permit enumerarea. De exemplu, cu
sss
, puteți dezactiva enumerarea pentru unele domenii.
getent passwd
va afișa toți utilizatorii (local + ldap)