Gestionarea utilizatorilor în orice sistem de operare este una dintre sarcinile de rutină de bază ale unui administrator de sistem.
Pentru un sistem de operare bazat pe Linux, de obicei implică crearea de conturi de utilizator, modificarea conturilor existente, cum ar fi schimbarea directorului lor principal, shell-ul implicit, blocarea/deblocarea unuia sau mai multor conturi și eliminarea conturilor de utilizator.
Înainte de a investiga comenzile și procesele pentru a efectua aceste sarcini, să analizăm pe scurt modul în care conturile de utilizator pot fi clasificate în Linux. De asemenea, rețineți că, dacă nu este specificat în mod explicit, comenzile date vor funcționa în majoritatea distribuțiilor Linux comune.
Cuprins
Tipuri de utilizatori
Utilizator root
Utilizatorul root este administratorul sistemului de operare cu toate permisiunile pentru a efectua operațiuni. De obicei, numai root poate instala/dezinstala sau actualiza programele și bibliotecile de bază ale sistemului. Este singurul cont de utilizator cu privilegii la nivelul întregului sistem.
Deci, utilizatorul root este cel mai puternic utilizator al sistemului.
Utilizator special
Aceștia sunt utilizatorii fără autentificare. Ei nu au toate privilegiile utilizatorului root. În funcție de cont, aceștia își asumă diferite roluri specializate.
Acestea sunt create automat la momentul instalării oricărei aplicații. bin, sync, lp, mail, operator, squid sunt câteva dintre exemplele de utilizatori speciali.
Utilizatori comuni
Utilizatorii obișnuiți au privilegii complete numai în directorul lor de lucru, de obicei directorul lor principal. Ei nu au privilegii de a gestiona sistemul sau de a instala software-ul. Ei nu pot îndeplini aceste sarcini fără a avea privilegii speciale prin sudo.
Adăugarea unui utilizator
Debian/Ubuntu
Pe un sistem bazat pe Debian sau Ubuntu, există câteva opțiuni pentru a adăuga utilizatori din CLI. Prima comandă este adduser, care este un script Perl și folosește comanda useradd în backend a cărui utilizare o vom vedea mai târziu.
Deoarece adăugarea unui utilizator este o sarcină privilegiată, ar trebui să utilizați sudo ca prefix și numele de utilizator ca argument. Alte detalii pot fi specificate după solicitare. Cu excepția numelui de utilizator și a parolei, restul detaliilor sunt opționale. Putem verifica dacă utilizatorul a fost creat utilizând comanda id.
$ sudo adduser johndoe Adding user `johndoe' ... Adding new group `johndoe' (1003) ... Adding new user `johndoe' (1003) with group `johndoe' ... Creating home directory `/home/johndoe' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for johndoe Enter the new value, or press ENTER for the default Full Name []: John Doe Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y $ $ id johndoe uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe) $
CentOS/RHEL/Fedora (inclusiv Debian/Ubuntu)
Următoarea comandă, useradd va funcționa în distribuțiile sistemului de operare bazate pe RHEL și va funcționa la fel de bine pe gazdele Ubuntu/Debian. Cea mai simplă sintaxă (fără opțiuni suplimentare) pentru a crea un utilizator nou este:
$ sudo useradd <username>
Exemplu:
$ sudo useradd janedoe
Comanda useradd acceptă mai multe opțiuni care pot fi specificate în timpul creării utilizatorului, cele mai comune fiind ID-ul utilizatorului (UID), ID-ul grupului (GID), shell-ul implicit și directorul principal etc. Un astfel de exemplu este dat mai jos:
$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe
Puteți verifica utilizatorul nou creat folosind comanda id:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $
Modificarea utilizatorului
Adesea, este necesar să se modifice unele proprietăți ale utilizatorilor existenți pe baza cerințelor organizației, solicitărilor utilizatorilor sau migrărilor de sistem. Cele mai multe dintre aceste proprietăți sunt ușor de modificat, deși trebuie să ne asigurăm cum va afecta mediul utilizatorului și accesul la fișierele deținute sau accesate de utilizator.
Shell implicit
Shell-ul implicit este shell-ul CLI creat atunci când un utilizator lansează o nouă sesiune CLI fie local, fie prin SSH. Cele mai multe sisteme moderne au un utilizator implicit Bash, deși acesta poate varia în funcție de distribuția Linux sau de mediul utilizatorului. Pentru a modifica shell-ul implicit al unui utilizator, utilizați:
$ sudo usermod -s <shell> <username>
Exemplu:
$ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/sh $ sudo usermod -s /bin/bash janedoe $ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/bash $
După cum puteți vedea în rezultatul de mai sus, shell-ul a fost schimbat din /bin/sh în /bin/bash pentru utilizatorul janedoe.
Director de acasă
La fel ca shell-ul implicit, directorul de pornire al unui utilizator poate fi modificat într-o locație diferită folosind:
$ sudo usermod -d <new_directory_path> <username>
În exemplul de mai jos, directorul principal al utilizatorului janedoe a fost schimbat în /data/janedoe:
$ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/bash $ sudo usermod -d /data/janedoe janedoe $ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $
Înainte de a face schimbarea, asigurați-vă că noul director are dreptul de proprietate și permisiunile. În caz contrar, utilizatorul se poate confrunta cu probleme în timpul conectării sau lucrând în noul director principal.
numele de utilizator
Puteți modifica ID-ul de utilizator al unui utilizator existent utilizând:
$ sudo usermod -u <new_uid> <username>
Exemplu:
$ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $ sudo usermod -u 1010 janedoe $ getent passwd janedoe janedoe:x:1010:1005::/data/janedoe:/bin/bash $
Din nou, schimbarea UID-ului modifică modul în care sistemul de fișiere Linux mapează proprietatea și permisiunea la un fișier sau director. Asigurați-vă că directorul principal al utilizatorului și conținutul acestuia și toate celelalte fișiere de oriunde în sistem, deținute inițial de utilizator (cu UID vechi), sunt modificate în UID mapat. Nerespectarea acestui lucru poate cauza probleme în sesiunea CLI și accesul la fișiere de către utilizator.
Grup implicit
Grupul implicit este de obicei ID-ul de grup implicit al utilizatorului, care este creat în timpul creării utilizatorului, cu excepția cazului în care este specificat un alt GID. Linux vă permite să modificați grupul implicit al unui utilizator folosind, de asemenea, comanda usermod. Iată sintaxa de utilizat:
$ sudo usermod -g <new_gid or group_name> <username>
Iată un exemplu:
$ getent passwd janedoe janedoe:x:1010:1005::/data/janedoe:/bin/bash $ sudo usermod -g 1001 janedoe $ getent passwd janedoe janedoe:x:1010:1001::/data/janedoe:/bin/bash $
Din nou, asigurați-vă că noul ID de grup este setat în directorul principal al utilizatorului, conținutul și toate celelalte fișiere sau directoare aplicabile pentru a migra în mod corespunzător permisiunile de proprietate.
Adăugarea/eliminarea grupurilor
Pe lângă grupul implicit, un utilizator din Linux poate face parte din grupuri secundare. Putem oricând adăuga sau elimina grupuri suplimentare cărora le aparține un utilizator folosind comanda usermod.
$ sudo usermod -a -G <group_id or group_name> <username>
Exemplu:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo usermod -a -G docker janedoe $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker) $
În mod similar, pentru a elimina un utilizator dintr-unul dintre grupurile secundare, utilizați comanda gpasswd așa cum se arată mai jos:
$ sudo gpasswd -d <username> <groupname>
Exemplu:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker) $ sudo gpasswd -d janedoe docker Removing user janedoe from group docker $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $
Comentariu GECOS
Câmpul GECOS din /etc/passwd conține informații despre utilizator sau comentariu. Putem modifica aceste informații pentru un utilizator existent ca:
$ sudo usermod -c <comment> <username>
Exemplu:
$ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $ sudo usermod -c "Jane Doe - System Admin" janedoe $ getent passwd janedoe janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash $
Vă rugăm să rețineți că, dacă comentariul dvs. sau detaliile utilizatorului conțin spații, includeți acel câmp între ghilimele, așa cum se face în exemplul de mai sus.
Nume de autentificare
Numele de autentificare al utilizatorului poate fi modificat și folosind comanda usermod folosind -l flag:
$ sudo usermod -l <new_username> <old_username>
Exemplu:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo usermod -l jane_doe janedoe $ id jane_doe uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe) $
Nu uitați să actualizați referințele utilizatorilor conform numelui nou, oriunde este folosit. Chiar și în comenzi precum id, ar trebui specificat noul nume de utilizator.
Eliminarea utilizatorului
Un utilizator poate fi eliminat din Linux folosind comanda userdel.
$ sudo userdel <username>
Exemplu:
$ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo userdel janedoe $ id janedoe id: ‘janedoe’: no such user $
Pentru a elimina un utilizator împreună cu directorul său principal și spool-ul de e-mail, adăugați și marcajul -r.
$ sudo userdel -r <username>
În special pentru sistemele bazate pe Ubuntu, puteți, de asemenea, să utilizați comanda deluser pentru a elimina un utilizator:
$ sudo deluser <username>
În mod similar, pentru a elimina directorul principal și spool-ul de e-mail, utilizați:
$ sudo deluser --remove-home <username>
Pentru informații detaliate și alte opțiuni acceptate, consultați pagina principală a diferitelor comenzi folosind:
$ man adduser $ man useradd $ man usermod $ man deluser $ man userdel
Concluzie
Acest articol a arătat diferite aspecte ale gestionării utilizatorilor într-un sistem Linux. Aceasta include o explicație a diferitelor categorii de utilizatori și cum să le adăugați și să le eliminați. De asemenea, acoperă diverse opțiuni care ajută la modificarea parametrilor unui utilizator existent. Deși nu acoperă toate posibilitățile susținute de diverse comenzi, acoperă o mulțime de sarcini de administrare comune pe care un administrator de sistem le va întâlni în munca de zi cu zi.
Ați putea fi, de asemenea, interesat să citiți: Cum să eliminați fișiere și directoare în Linux?