Folosirea map-urilor passwd și group

Unul dintre rolurile esențiale pa cere le joacă NIS este sincronizarea informațiilor despre utilizatori și conturile lor în cadrul domeniului NIS. În acest scop, se păstrează de obicei un fișier /etc/passwd minimal la care se adaugă informațiile din map-urile NIS (care sunt disponibile în tot domeniul). Simpla activare a acestora în nsswitch.conf nu este însă de ajuns.

Atunci când folosiți NIS pentru distribuirea informațiilor referitoare la parole trebuie mai întâi să vă asigurați că user id-urile utilizatorilor din fișierul passwd local corespund cu cele de pe serverul NIS.

Dacă unul dintre id-urile numerice din /etc/passwd sau /etc/group diferă de cel din map-uri va trebui să modificați proprietarul (owner) pentru toate fișierele utilizatorului respectiv. Mai întâi trebuie să setați noile valori ale uid-urilor și gid-urilor în passwd respectiv group. Apoi localizați toate fișierele utilizatorului și le schimbați proprietarul (cu chown). Să zicem că news avea user id-ul 9, iar okir avea 103; dacă această valoare a fost modificată ar urma să folosiți următoarele comenzi:

Este important să apelați aceste comenzi avînd instalat noul fișier passwd și să colectați toate numele fișierelor userului înainte de chown. Pentru a modifica apartenența la grupuri a fișierelor se folosește o comandă similară.

După de ați făcut aceasta, uid-urile și gid-urile numerice locale vor corespunde cu cele din întregul domeniu NIS. Următorul pas este adăugarea în nsswitch.conf a liniilor care activează localizarea prin NIS a informațiilor despre utilizatori și grupuri:

Ca efect, atunci când un utilizator încearcă să se conecteze, comanda login sau alte comenzi asemănătoare vor consulta mai întîi map-urile NIS și doar în caz de nereușită vor consulta fișierele locale. În general probabil că veți scoate aproape toți userii din fișierele locale, lăsînd numai root și utilizatori generici cum este mail, și aceasta deoarece unele taskuri vitale ale sistemului ar putea necesita maparea uid-urilor cu numele utilizatorilor sau invers. De exemplu, uneori job-urile cron administrative execută comanda su pentru a deveni temporar news, iar subsistemul UUCP ar putea trimite prin mail un raport. Dacă news și uucp nu există în fișierul passwd local există riscul ca aceste joburi să eșueze foarte urât dacă NIS nu este disponibil în acel moment.

Mă simt dator să dau aici două avertismente importante: în primul rând, configurările descrise mai sus funcționează numai pentru suite login care nu folosesc shadow passwords ( cum este cea inclusă în pachetul util-linux ). Complicațiile aduse de folosirea parolelor shadow vor fi abordate în secțiunea următoare. În al doilea rând, comenzile de genul login nu sunt singurele care accesează fișierul passwd-- de pildă chiar și banalul ls face parte din această categorie. De fiecare dată când este apelat ls cu opțiunea -l (long listing), vor fi afișate numele simbolice pentru grupul și proprietarul fiecărui fișier, ceea ce implică de fiecare dată o conectare la serverul NIS. Se poate întâmpla ca din acestă cauză viteza să scadă foarte mult, mai ales dacă rețeaua este supraîncărcată sau dacă, mai grav, serverul NIS nu este în aceeași rețea fizică și datagramele trebuie să treacă printr-un router.

Și asta nu e totul. Imaginați-vă că un utilizator vrea să-și schimbe parola. În mod normal, va apela passwd care citește noua parolă și modifică fișierul passwd local. Acest lucru este imposibil când se folosește NIS, deoarece fișierul nu mai este disponibil local, iar a permite utilizatorilor să se conecteze la serverul NIS de fiecare dată când vor să-și schimbe parola nu este o soluție. Din aceste motive NIS vine cu o versiune proprie a passwd numit yppasswd. Pentru a schimba parola păstrată pe server, yppasswd contacteză daemonul yppasswdd de pe server via RPC, și comunică noile informații. Pentru a instala yppasswd peste programul passwd clasic se procedează în felul următor:

De asemenea trebuie să instalați pe server rpc.yppasswdd și să-l porniți din rc.inet2. Astfel li se va ascunde utilizatorilor această ciudățenie datorată NIS-ului.