03/29/2024

Cum să adăugați, să modificați și să eliminați un utilizator în Linux?

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.

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.

  Cum se instalează Retroarch pe Linux

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.

  Cum să vă conectați la computere Windows de la distanță pe Linux cu Remmina

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.

  Cum se configurează X2Go pe Linux

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?