Naredbe za koje (možda) niste znali 18: pwck, grpck, pwconv, grpconv

Za naredbama pwck i grpck nećete toliko često posezati, ukoliko je sa sustavom sve u redu, te dodajete i brišete korisnike uredno i na konzistentan način.  No, s vremenom se mogu pojaviti "fantomski" korisnici ili neki drugi problemi, koje ste nehotice prouzrokovali vi, ili je do toga došlo zbog nadogradnje sustava ili povrata podataka sa starijeg backupa.  Najčešće, problemi nastaju nakon ručnog prebacivanja podataka o korisnicima s jednog poslužitelja na drugi, kad je grešku najlakše napraviti.

Naredba pwck istovremeno provjerava datoteke /etc/passwd i /etc/shadow, a u njima provjerava broj polja (kojih mora biti 7), numeričke oznake korisnika i grupa, postoje li radni direktorij i korisnička ljuska (shell).  Također, provjerava se je li ime korisnika jedinstveno na sustavu, a dupli unosi će biti ponuđeni za brisanje.

Ukoliko pokrenete naredbu pwck bez ikakvih argumenata, dobit ćemo otprilike ovakav ispis:

# pwck
user lp: directory /var/spool/lpd does not exist
user 'nobody': directory '/nonexistent' does not exist
user 'darko': no group 1000
...
user peric: program /bin/zsh does not exist
user mduric: program /bin/zsh does not exist
no matching password file entry in /etc/shadow
add user 'mmarkov' in /etc/shadow? y
pwck: the files have been updated

Dakle, pwck je prijavio određene probleme s HOME direktorijima, grupama i korisnickim ljuskama.  Neke probleme možemo zanemariti, poput radnih direktorija sistemskih korisničkih računa, jer su neki i zamišljeni da nemaju radni direktorij (poput korisnika "nobody").  No, korisnik "darko" bi morao biti u nekoj grupi koja je ispravno definirana na sustavu, pa ćemo je dodati:

# ls -ld /home/darko
drwxr-xr-x 6 darko 1000 4096 Aug 23 2007 /home/darko
# grep 1000 /etc/group
# groupadd -g 1000 darko
# ls -ld /home/darko
drwxr-xr-x 6 darko darko 4096 Aug 23 2007 /home/darko

Dakle, korisnik "darko" je u grupi koja nije uvedena u /etc/group, što smo provjerili s naredbom grep. S naredbom groupadd dodali smo novu grupu "darko" i forsirali numeričku oznaku (GID) 1000. Nakon toga su sve datoteke korisnika darko "automagično" dobile i ime grupe. No, u vašem slučaju se možda radi o korisniku kojeg treba obrisati, pa postupite kako svaki pojedinačni slučaj zahtjeva.

Dakle, naredba pwck će pomoći u sređivanju datoteka /etc/passwd i /etc/shadow. Ukoliko ste sigurni da je datoteka /etc/passwd u potpunosti ispravna možete upotrijebiti naredbu pwconv, koja će sinkronizirati te dvije datoteke. Ali, s njom oprez, jer će obrisati svakog nepostojećeg korisnika u datoteci /etc/shadow , što u vašem slučaju može biti na stotine korisnika koji će ostati bez zaporke. Bolje je prije toga maksimalno raščistiti situaciju s naredbom pwck i grpck, a tako uostalom savjetuju i u pripadajućoj man stranici.

Nakon što smo popravili datoteke sa zaporkama, možemo pogledati ima li kakvih problema s datotekama koje čuvaju podatke o grupama, za što ćemo upotrijebiti ćemo naredbu grpck:

root@server:~# grpck
no matching group file entry in /etc/gshadow
add group 'ivan' in /etc/gshadow ?y
no matching group file entry in /etc/gshadow
add group 'petar' in /etc/gshadow ?y
grpck: the files have been updated

Datoteka /etc/gshadow bi trebala sadržavati enkriptirane zaporke za grupe, no to se rijetko rabi. U ovom slučaju možete odgovoriti potvrdno na sva pitanja, što će dodati grupe iz /etc/group u /etc/gshadow. No, neće sadržavati nikakve zaporke ukoliko ih ni prije niste rabili.

I u /etc/group mogu zaostati obrisani korisnici:

# grpck
group adm: no user petar
delete member 'petar'? y

U ovom slučaju, u grupi adm je zaostao obrisani korisnik "petar", pa taj unos možete obrisati (ili ponovo dodati korisnika, ukoliko je greškom bio obrisan). Mogu vam se javiti i ovakve poruke:

# grpck
'darko' is a member of the 'adm' group in /etc/group but not in /etc/gshadow

Sustav vam na ovaj način poručuje da /etc/group i /etc/gshadow nisu sinkronizirane, a najlakše rješenje je upotrijebiti naredbu grpconv:

# grpconv
# grpck
#

Sustav više nema "primjedbi", što se može vidjeti iz izlaza naredbe. Naredba grpconv pretvara sve unose iz /etc/group u sintaktički pravilne unose  za /etc/gshadow. Iz ovoga proizlazi da, isto kao u slučaju /etc/passwd, treba paziti na ispravnost datoteke /etc/group.

Naredbe  pwck i grpck imaju opciju "-r" (read-only), koja neće napraviti nikakve promjene na sustavu, ali će pokazati što ne valja. Također, obje imaju opciju "-s" s kojom postižemo sortiranje unosa u ovim datotekama po UID-u, odnosno GID-u.

Radi potpunosti, spomenut ćemo srodne naredbe pwunconv i grpunconv, koje će spojiti zaporke natrag iz /etc/shadow u /etc/passwd i iz /etc/gshadow u /etc/group. No, ne vjerujemo da ćete ovo ikada trebati napraviti.

Na kraju, ponovit ćemo tvrdnju s početka, ove dvije, odnosno četiri naredbe nećete često rabiti, ali u slučaju potrebe pomoći će vam da sustav osposobite u što kraćem vremenu.

 

Kuharice: 
Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)