Како променити корисничке податке помоћу цхфн-а и усермода на Линук-у

Korisnički nalog ne čini samo korisničko ime. U ovom tekstu ćemo istražiti kako se podešavaju i modifikuju svi metapodaci povezani sa Linux korisničkim nalogom putem komandne linije.

Šta je u imenu?

Svaki korisnik na Linux ili Unix sistemu ima svoj korisnički nalog. Ime tog naloga, ujedno je i ime pomoću kojeg se prijavljujete na sistem. Takođe, to je (po defaultu) ime vaše grupe za prijavljivanje i ime vašeg kućnog direktorijuma. Jedan identifikator se koristi za sve ove stavke.

Pored ovih osnovnih informacija, postoje i druge pojedinosti koje se mogu čuvati za svaki korisnički nalog. Konkretni podaci iz stvarnog sveta, kao što su puno ime korisnika, broj njegove kancelarije, radni telefon, i slično, mogu se definisati i povezati sa nalogom. Praktično, mogu se dodati bilo kakvi podaci po želji.

Ova funkcionalnost je najkorisnija administratorima sistema koji upravljaju računarima sa velikim brojem korisničkih naloga. Međutim, čak i korisnicima Linux računara sa jednim nalogom, može biti zanimljivo da istraže šta se sve krije „ispod haube“.

Gecos Polje

U ranim danima Unix-a, pioniri nisu imali sopstveni štampač. Morali su da svoje zadatke štampanja prebacuju na General Electric mainframe koji je koristio General Electric Comprehensive Operating System (GECOS). Da bi to učinili, korisnici Unix sistema su morali da čuvaju i koriste akreditive naloga na GECOS sistemu.

Gecos polje je kreirano upravo za čuvanje tih akreditiva. Iako je prvobitna svrha ovog polja davno postala deo istorije, GECOS polje se i dalje koristi za skladištenje drugih podataka koji su povezani sa vlasnikom korisničkog naloga. Ono zadržava svoje staro ime, uprkos novoj nameni.

Ovo polje se čuva u datoteci /etc/passwd, zajedno sa ostalim podacima o korisničkom nalogu:

Korisničko ime naloga.
ID korisnika.
ID grupe.
Putanja do matičnog direktorijuma korisničkog naloga.
Školjka koja se pokreće prilikom prijave korisnika.

Komande finger i pinky preuzimaju informacije iz ovog polja i prikazuju ih.

Komanda chfn

chfn (change finger information) komanda omogućava vam da podešavate i menjate informacije koje se čuvaju u GECOS polju. Podaci se čuvaju kao lista razdvojena zarezima unutar samog polja.

Komanda chfn je bila već prisutna na Ubuntu 18.04.1 i Manjaro 18.1.0. Na Fedora 31 je morala biti instalirana, a možete je instalirati koristeći sledeću komandu:

sudo dnf install util-linux-user

Da vidimo šta finger može da sazna o korisniku „dave“. Da bismo dobili što više detalja, koristićemo opciju -l (dugi format):

finger dave -l

Evo šta možemo da vidimo:

finger prikazuje korisničko ime naloga, kućni direktorijum i podrazumevanu školjku. Sve se to odnosi na korisnički nalog, a ne na konkretnu osobu koja taj nalog koristi. Možemo koristiti komandu chfn za čuvanje informacija o stvarnoj osobi.

chfn dave

Na ovaj način pokreće se interaktivni proces. Biće vam zatraženo da unesete vrednost za svaku informaciju koju GECOS polje može da sadrži. Trenutna vrednost za svaku stavku prikazuje se u uglastim zagradama []. Ako želite da sačuvate trenutne podatke, samo pritisnite taster „Enter“.

Uneli smo sledeće podatke:

Broj sobe: 512
Radni telefon: 555-4567
Kućni telefon: 555-5432

Proverimo da li finger sada preuzima te nove informacije:

finger dave -l

Da, jesu. Međutim, možda ste primetili da nije traženo da promenite puno ime. To je moguće samo ako koristite sudo. Ne moramo da prolazimo kroz celu chfn sesiju ponovo samo zato što smo zaboravili da koristimo sudo. Možemo menjati pojedinačne vrednosti podataka.

Promena Pojedinačnih Vrednosti Podataka

Puno ime vlasnika naloga možemo postaviti koristeći opciju -f (puno ime) u kombinaciji sa sudo.

sudo chfn -f "Dave McKay" dave

Ako ponovo proverimo sa finger:

Vidimo da je puno ime dodato.

Postoje i druge opcije za promenu broja sobe, broja kućnog telefona i broja radnog telefona. Za promenu broja sobe (kancelarije), koristite opciju -r (broj sobe):

sudo chfn -r 633 dave

Napomena: na nekim distribucijama možete koristiti opciju -o (broj kancelarije) umesto -r. Više o tome uskoro. Da biste videli opcije za vašu verziju chfn, koristite:

man chfn

Za promenu broja kancelarijskog telefona, koristite opciju -w (radni telefon):

sudo chfn -w 555-1122 dave

I na kraju, za promenu broja kućnog telefona, koristite opciju -h (broj kućnog telefona):

sudo chfn -h 555-6576 dave

Hajde da još jednom koristimo finger kako bismo se uverili da su sve ove promene primenjene:

finger dave -l

Uspeh! Sve komande su funkcionisale, a vrednosti podataka su ažurirane.

Korišćenje chfn za druge korisničke naloge

Sada kada znamo kako da menjamo svoje informacije, šta je sa promenom GECOS podataka za druge korisnike? Isto je tako jednostavno, jedina razlika je što morate koristiti sudo. Da proverimo podatke za korisnički nalog „mary“:

finger mary -l

Vidimo da su postavljene uobičajene podrazumevane informacije. Dodajmo neke nove informacije:

sudo chfn mary

Proći ćemo kroz istu sesiju kao i ranije, biće nam zatražene vrednosti za svaku informaciju koja se može sačuvati. S obzirom da smo koristili sudo, tražiće se i vrednost za puno ime.

Čekaj malo, šta je sa onom poslednjom stavkom, pod nazivom „Ostalo?“

Ova opcija nije podržana od strane svih verzija chfn, i videćete je samo ako koristite sudo. To je razlog zašto je nismo videli ranije kada (namerno) nismo koristili sudo sa:

chfn dave

Podatak „Ostalo“ može sadržati bilo šta što želite. Nema propisanu ili očekivanu upotrebu.

Verzije chfn koje podržavaju polje „Ostalo“ takođe nude opciju -o (drugo) za direktno menjanje ove vrednosti. Zbog sukoba između opcije -o za „broj kancelarije“ i opcije -o za „drugo“, neki sistemi koriste -r za „broj sobe“.

Možemo pogledati podatke uskladištene za korisnički nalog „mary“ u datoteci /etc/passwd, koristeći less:

less /etc/passwd

Na sistemima koji to podržavaju (proverite man stranicu za vašu verziju chfn), možete direktno postaviti polje „other“ koristeći opciju -o (other):

sudo chfn -o "HTG Freelancer" dave

I možemo proveriti podatke za korisnički nalog „dave“ koristeći komandu less:

less /etc/passwd

Postavlja se očigledno pitanje. Ako vaša verzija chfn ne podržava polje „Ostalo“, kako da ga promenite? To se može uraditi pomoću komande usermod.

Komanda usermod

Komanda usermod omogućava izmenu različitih aspekata korisničkog naloga, uključujući dodavanje i uklanjanje korisnika iz grupa, i promenu njihove podrazumevane školjke. Takođe se može koristiti za direktnu manipulaciju GECOS poljem.

Pogledajmo detaljnije red u datoteci /etc/passwd za korisnički nalog „mary“. Koristićemo grep da izdvojimo taj red. Ovo radi zato što korisnička imena moraju biti jedinstvena. Može postojati samo jedan korisnički nalog pod imenom „mary“.

grep mary /etc/passwd

Prikazuju se polja u etc/passwd datoteci. Dve tačke „:“ se koriste kao separator polja. S leva na desno, polja su:

Korisničko ime naloga.
Znak „x“, što znači da se lozinka za ovaj nalog čuva šifrovano u datoteci /etc/shadow.
Korisnički ID za nalog „mary“.
ID grupe za nalog „mary“.
GECOS polje.
Putanja do matičnog direktorijuma za nalog „mary“.
Školjka koja se pokreće kada se vlasnik naloga „mary“ prijavi.

Zarez „,“ se koristi kao separator za vrednosti podataka u GECOS polju. Vrednosti u GECOS polju su, s leva na desno:

Puno ime.
Broj sobe (ili kancelarije).
Broj radnog telefona.
Broj kućnog telefona.
Ostale informacije.

Važno je napomenuti da komanda usermod postavlja celo GECOS polje na novu vrednost koju navedete. Ako navedete samo puno ime osobe, u GECOS polju će se naći samo to puno ime. To znači da morate navesti sve postojeće podatke koje želite da zadržite.

Evo primera. Korisnica Mary je unapređena i seli se na četvrti sprat. Dobija novi broj kancelarije, novi telefonski broj na poslu, a mi ćemo joj dodati i srednje ime. Vrednost njenog polja „Ostalo“ će se takođe promeniti. Iako se njen kućni telefonski broj neće menjati, moramo ga uključiti u string za usermod.

Moramo koristiti opciju -c (komentar), i komandu moramo pokrenuti sa sudo.

sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

Korišćenje grep za prikaz sadržaja datoteke /etc/passwd za „mary“, pokazuje da su nove vrednosti dodate.

grep mary /etc/passwd

Sve je u fluksu, ništa ne ostaje

Netačni podaci su beskorisni. Kada se informacije o ljudima promene – preseljenja, promene imena, nazivi uloga – možete lako ažurirati njihove metapodatke kako biste odražavali trenutnu situaciju.