nsswitch.conf(5)

NUME
nsswitch.conf - fișierul de configurare al comutatorului de servicii de nume „Name Service Switch”

DESCRIERE
Fișierul de configurare al „Name Service Switch” (NSS), /etc/nsswitch.conf, este utilizat de biblioteca GNU C și de alte aplicații pentru a determina sursele din care să se obțină informații despre serviciile de nume într-o serie de categorii și în ce ordine. Fiecare categorie de informații este identificată printr-un nume de bază de date.

Fișierul este text ASCII simplu, cu coloane separate prin spații sau caractere de tabulare. Prima coloană specifică numele bazei de date. Celelalte coloane descriu ordinea surselor de interogare și un set limitat de acțiuni care pot fi efectuate de rezultatul căutării.

Următoarele baze de date sunt înțelese de biblioteca GNU C:

aliases
    Nume-alias de poștă electronică, utilizate de getaliasent(3) și funcțiile conexe.

ethers
    Numere de Ethernet.

group
    Grupuri de utilizatori, utilizate de getgrent(3) și funcțiile conexe.

hosts
    Nume și numere de gazdă, utilizate de gethostbyname(3) și funcțiile conexe.

initgroups
    Lista suplimentară de acces la grup, utilizată de funcția getgrouplist(3).

netgroup
    Lista de gazde și utilizatori la nivel de rețea, utilizată pentru regulile de acces. Bibliotecile C dinainte de glibc 2.1 acceptau „netgroups” numai prin NIS.

networks
    Nume și numere de rețea, utilizate de getnetent(3) și funcțiile conexe.

passwd
    Parolele utilizatorilor, utilizate de getpwent(3) și de funcțiile conexe.

protocols
    Protocoale de rețea, utilizate de getprotoent(3) și funcțiile conexe.

publickey
    Chei publice și secrete pentru Secure_RPC utilizate de NFS și NIS+.

rpc Nume și numere de apel de procedură la distanță, utilizate de getrpcbyname(3) și funcțiile conexe.

services
    Servicii de rețea, utilizate de getservent(3) și funcțiile conexe.

shadow
    Parole „shadow” de utilizator, utilizate de getspnam(3) și funcțiile conexe.

Biblioteca GNU C ignoră bazele de date cu nume necunoscute. Unele aplicații folosesc acest lucru pentru a implementa manipulări speciale pentru propriile baze de date. De exemplu, sudo(8) consultă baza de date sudoers. Delegarea ID-urilor de utilizator/grup subordonate poate fi configurată utilizând baza de date subid. Consultați subuid(5) și subgid(5) pentru mai multe detalii.

Iată un exemplu de fișier /etc/nsswitch.conf:

    passwd:         compat
    group:          compat
    shadow:         compat

    hosts:          dns [!UNAVAIL=return] files
    networks:       nis [NOTFOUND=return] files
    ethers:         nis [NOTFOUND=return] files
    protocols:      nis [NOTFOUND=return] files
    rpc:            nis [NOTFOUND=return] files
    services:       nis [NOTFOUND=return] files

Prima coloană este numele bazei de date. Celelalte coloane specifică:

•   Una sau mai multe specificații de servicii, de exemplu, „files”, „db” sau „nis”. Ordinea serviciilor pe linie determină ordinea în care serviciile respective vor fi interogate, pe rând, până când se găsește un rezultat.

•   Acțiuni opționale de efectuat în cazul în care se obține un anumit rezultat din serviciul precedent, de exemplu, „[NOTFOUND=return]”.

Specificațiile serviciilor acceptate în sistemul dvs. depind de prezența bibliotecilor partajate și, prin urmare, sunt extensibile. Bibliotecile numite /lib/libnss_ȘERVICIU.so.X vor furniza SERVICIUL numit. Pe o instalare standard, puteți utiliza „files”, „db”, „nis” și „nisplus”. Pentru baza de date hosts, puteți specifica în plus „dns”. Pentru bazele de date passwd, group și shadow, puteți specifica în plus „compat” (a se vedea Modul de compatibilitate mai jos). Numărul versiunii X poate fi 1 pentru glibc 2.0 sau 2 pentru glibc 2.1 și ulterioare. Pe sistemele cu biblioteci suplimentare instalate, este posibil să aveți acces la alte servicii, cum ar fi „hesiod”, „ldap”, „winbind” și „wins”.

O acțiune poate fi, de asemenea, specificată în urma unei specificații de serviciu. Acțiunea modifică comportamentul ca urmare a unui rezultat obținut din sursa de date anterioară. Elementele de acțiune au forma generală:

    [STARE=ACȚIUNE]
    [!STARE=ACȚIUNE]

unde:

    STARE => success | notfound | unavail | tryagain
    ACȚIUNE => return | continue | merge

Semnul ! anulează testul, potrivind toate rezultatele posibile, cu excepția celui specificat. Tipul caracterelor minuscule/majuscule al cuvintelor cheie nu este semnificativ.

Valoarea STĂRII este comparată cu rezultatul funcției de căutare apelată de specificația de serviciu anterioară și poate fi una dintre:

    success
        Nu s-a produs nicio eroare, iar intrarea solicitată este returnată. Acțiunea implicită pentru această condiție este „return”.

    notfound
        Căutarea a reușit, dar intrarea solicitată nu a fost găsită. Acțiunea implicită pentru această condiție este „continue”.

    unavail
        Serviciul este permanent indisponibil. Aceasta poate însemna fie că fișierul solicitat nu poate fi citit, fie, în cazul serviciilor de rețea, că serverul nu este disponibil sau nu permite interogări. Acțiunea implicită pentru această condiție este „continue”.

    tryagain
        Serviciul este temporar indisponibil. Aceasta ar putea însemna că un fișier este blocat sau că un server nu mai poate accepta conexiuni. Acțiunea implicită pentru această condiție este „continue”.

Valoarea ACȚIUNII poate fi una dintre:

    return
        Returnează acum rezultatul. Nu apelează nicio altă funcție de căutare. Cu toate acestea, din motive de compatibilitate, dacă aceasta este acțiunea selectată pentru baza de date group și starea notfound, iar fișierul de configurare nu conține linia initgroups, următoarea funcție de căutare este întotdeauna apelată, fără a afecta rezultatul căutării.

    continue
        Apelează la următoarea funcție de căutare.

    merge
        [SUCCESS=merge] este utilizat între două intrări în baza de date. Atunci când un grup este localizat în prima dintre cele două intrări de grup, procesarea va continua la următoarea intrare. Dacă grupul este găsit și în următoarea intrare (iar numele grupului și GID-ul se potrivesc exact), lista membrilor din a doua intrare va fi adăugată la obiectul grup care va fi returnat. Disponibil de la glibc 2.24. Rețineți că fuzionarea nu va fi efectuată pentru getgrent(3) și nici membrii duplicați nu vor fi eliminați atunci când apar în ambele intrări care sunt fuzionate.

  Modul de compatibilitate (compat)
Serviciul NSS „compat” este similar cu „files”, cu excepția faptului că permite în plus intrări speciale în fișierele corespunzătoare pentru a acorda utilizatorilor sau membrilor grupurilor de rețea acces la sistem. Următoarele intrări sunt valabile în acest mod:

    Pentru bazele de date passwd și shadow:

        +utilizator
            Include utilizatorul specificat din tabelul passwd/shadow. NIS

        +@grup-rețea
            Include toți utilizatorii din grupul-de-rețea dat.

        -utilizator
            Exclude utilizatorul specificat din tabelul passwd/shadow NIS.

        -@grup-rețea
            Exclude toți utilizatorii din grupul-de-rețea dat.

        +   Include fiecare utilizator, cu excepția celor excluși anterior, din tabelul passwd/shadow NIS.

    Pentru baza de date group:

        +grup
            Include grupul specificat în tabelul grupurilor NIS.

        -grup
            Exclude grupul specificat din tabelul grupurilor NIS.

        +   Include fiecare grup, cu excepția celor excluse anterior, din tabelul grupurilor NIS.

În mod implicit, sursa este „nis”, dar acest lucru poate fi anulat prin specificarea oricărui serviciu NSS, cu excepția lui „compat”, ca sursă pentru pseudobazele de date passwd_compat, group_compat și shadow_compat.

FIȘIERE
Un serviciu numit SERVICIU este implementat de o bibliotecă de obiecte partajate numită libnss_SERVICIU.so.X care se află în /lib.

    /etc/nsswitch.conf
        fișierul de configurare NSS.
    /lib/libnss_compat.so.X
        implementează sursa „compat”.
    /lib/libnss_db.so.X
        implementează sursa „dbt”.
    /lib/libnss_dns.so.X
        implementează sursa „dns”.
    /lib/libnss_files.so.X
        implementează sursa „files”.
    /lib/libnss_hesiod.so.X
        implementează sursa „hesiod”.
    /lib/libnss_nis.so.X
        implementează sursa „nis”.
    /lib/libnss_nisplus.so.X
        implementează sursa „nisplus”.

Următoarele fișiere sunt citite atunci când sursa „files” este specificată pentru bazele de date respective:

    aliases
        /etc/aliases
    ethers
        /etc/ethers
    group
        /etc/group
    hosts
        /etc/hosts
    initgroups
        /etc/group
    netgroup
        /etc/netgroup
    networks
        /etc/networks
    passwd
        /etc/passwd
    protocols
        /etc/protocols
    publickey
        /etc/publickey
    rpc /etc/rpc
    services
        /etc/services
    shadow
        /etc/shadow

NOTE
Începând cu glibc 2.33, nsswitch.conf este reîncărcat automat dacă fișierul este modificat. În versiunile anterioare, întregul fișier era citit o singură dată în cadrul fiecărui proces. Dacă fișierul era modificat ulterior, procesul continua să utilizeze vechea configurație.

În mod tradițional, exista o singură sursă de informații despre servicii, adesea sub forma unui singur fișier de configurare (de exemplu, /etc/passwd). Cu toate acestea, pe măsură ce alte servicii de nume, cum ar fi Network Information Service (NIS) și Domain Name Service (DNS), au devenit populare, a fost necesară o metodă care să fie mai flexibilă decât ordinele fixe de căutare codificate în biblioteca C. Mecanismul Name Service Switch, bazat pe mecanismul utilizat de Sun Microsystems în biblioteca C Solaris 2, a introdus o soluție mai curată la această problemă.

CONSULTAȚI ȘI
getent(1), nss(5)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.