Cât de des adăugăm noi utilizatori unui sistem Linux depinde de natura acelui sistem: poate fi un calculator personal, unde facem foarte rar noi modificări, sau un server Linux, cu mulți utilizatori. Acest articol descrie modul de adăugare al unui utilizator nou într-un sistem Linux cu ajutorul comenzii useradd
.
Sintaxa de bază a comenzii useradd este:
useradd [-c comment] [-d home-dir] [-e expire-date] [-f inactive-days]↵
[-g default-group] [-G group[,…]] [-m [-k skeleton-dir] | -M]↵
[-p password] [-s shell] [-u UID [-o]] [-r] [-N] username
În forma sa cea mai simplă, comanda se folosește doar scriind useradd nume_utilizator
, unde nume_utilizator este numele contului pe care dorim să-l facem. Restul parametrilor sunt folosiți pentru a modifica valorile default ale sistemului, valori care sunt stocate în fișierul /etc/login.defs.
Comentariu
Parametrul -c comentariu
adaugă un câmp-comentariu utilizatorului nou creat. Unii administratori de sistem stochează informații publice despre utilizatori în acest câmp, cum ar fi biroul utilizatorului sau numărul de telefon. Alții stochează doar numele complet al utilizatorului sau chiar nicio informație.
Directorul home
Parametrul -d home_dir
specifică directorul home al noului utilizator, dacă nu va fi cel default din sistem - /home/nume_utilizator.
Data de expirare a contului
Parametrul -e dată_expirare
stabilește data când va expira noul cont. Data va fi de forma YYYY-MM-DD, deși multe sisteme acceptă și alte forme, cum ar fi MM-DD-YYYY.
Zile inactive
Un cont devine complet inactiv după un anumit număr de zile după ce parola expiră. Parametrul -f zile_inactive
stabilește acest număr de zile. Valoarea -1 dezactivează opțiunea (este valoarea default).
Grupul default
Se poate stabili numele sau GID (Group IDentification number) grupului care va fi default pentru noul utilizator folosind parametrul -g opțiune_grup
. Valoarea default a acestui parametru variază de la distribuție la distribuție (poate fi grupul cu același nume ca al utilizatorului sau grupul users).
Grupuri adiționale
Parametrul -G grupuri[,...]
stabilește numele sau numerele GID ale unui sau mai multe grupuri din care va face parte utilizatorul. Aceste grupuri nu trebuie să fie cele default și pot fi specificate mai multe valori separate prin virgulă.
Directorul home
Fișierul /etc/login.defs specifică dacă va fi sau nu creat un directorul home pentru noii utilizatori (prin intermediul parametrului CREATE_HOME sau DEFAULT_HOME - variază în funcție de distribuție). Dacă parametrii menționați anterior din fișierul /etc/login.defs sunt setați pe yes, atunci opțiunea -m
din comanda useradd nu va avea niciun efect. Dacă sunt pe no, atunci opțiunea -m
comută această specificare și un director home va fi făcut pentru noul utilizator.
În mod normal, configurația default (inclusiv subdirectoarele) sunt copiate din directorul /etc/skel. Poate fi specificat un alt template cu opțiunea -k director_schelet
.
Fără director home
Opțiunea -M
forțează sistemul să nu creeze un director home, chiar dacă în fișierul /etc/login.defs această acțiune este prestabilită. Această opțiune poate fi folosită (adesea împreună cu opțiunea -u, descrisă mai jos, sau -d, descrisă mai sus) dacă noul utilizator va prelua controlul directorului home al unui utilizator existent - să presupunem, de exemplu, că un angajat nou îl va înlocui pe unul care a plecat.
Specificarea parolei hash
Parametrul -p parolă
specifică parola pre-hashed a parolei noului utilizator. Valoarea parolă este adăugată, neschimbată, în fișierul /etc/passwd sau /etc/shadow. Asta înseamnă că dacă veți adăuga o parolă ne-hashed, ea nu va funcționa după cum, probabil, vă veți aștepta. În practică, acest parametru este folosit mai mult în scripturi, unde se poate face hash la o parolă (folosind crypt
) și apoi se poate trimite valoarea hash a parolei comenzii useradd
. Dacă nu se folosește acest parametru, noul cont de utilizator va fi dezactivat - se poate activa prin adăugarea unei parole. Adăugarea sau schimbarea ulterioară a parolei utilizatorului se va face cu comanda passwd
.
Termenii criptare și hashed sunt adesea confundați. O parolă hashed este creată folosind un proces matematic într-un singur sens: se generează o sumă de control din care nu mai poate fi dedusă valoarea originală (parola, în cazul de față). Dacă o parolă a fost criptată, ea poate fi ulterior decriptată, putându-se obține caracterele parolei originale. Parolele în Linux sunt hashed, chiar dacă uneori vom vedea folosit termenul de criptare (în mod greșit).
Shell-ul default
Opțiunea -s shell
stabilește shell-ul default al noului utilizator. Pe cele mai multe sisteme, el este /bin/bash, dar se poate specifica fără probleme altul.
UID
Parametrul -u UID
creează un nou utilizator cu o anumită valoare specificată a UID (User IDentification number), alta decât cea care va veni default din sistem. valoarea trebuie să fie un număr întreg, de regulă mai mare de 1000 pentru conturile de utilizator (unele distribuții permit și valori mai mici, de exemplu peste 500) - conturile de sistem au, de regulăp, valori mai mici de 200 sau 100.
Opțiunea -o
permite ca numărul UID să poată fi reutilizat, astfel încât două conturi de utilizator să poată fi asociate unui singur UID - este validă doar în combinație cu -u
.
Conturi de sistem
Parametrul -r
specifică faptul că noul cont va fi unul de sistem - va avea valoarea UID mai mică decât UID_MIN specificată în fișierul /etc/login.defs. Comanda useradd
nu va face și un director home pentru acești utilizatori de sistem.
Fără User Grup
În unele distribuții (de exemple cele care au la bază Red Hat), sistemul face un grup cu același nume ca cel al noului utilizator adăugat - acesta va fi și grupul default pentru utilizatorul respectiv. Parametrul -N
dezactivează acest comportament.
Exemplu de utilizare a comenzii useradd
:
Să presupunem că avem un hard disk montat în dirctorul /home2. Vrem să adăugăm un nou utilizator numit Alex care să aibă directorul home pe noul disk din /home2. De asemenea, vrem să-l facem membru al grupurilor grup1, grup2 și grup3 - grup3 fiind și grupul default.
Vom scrie comanda ca mai jos:
useradd -m -d /home2/alex -g grup3 -G grup1,grup2,grup3 alex
[…] Create, delete, and modify local user accounts (plus aici și aici) […]