Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Linux Sisteme de operare

Cum să schimbi utilizatorul în Linux: Ghidul complet

Linux este un sistem de operare multi-utilizator prin design, iar gestionarea identităților utilizatorilor este una dintre cele mai fundamentale abilități pe care orice administrator de sistem trebuie să o stăpânească. Indiferent dacă gestionezi un mediu VPS Hosting, configurezi un server web sau rezolvi probleme de permisiuni de fișiere după o implementare, înțelegerea modului de schimbare a utilizatorilor în Linux este esențială.

Expresia „schimbare utilizator” în Linux acoperă de fapt mai multe operații distincte, fiecare cu propriile instrumente, riscuri și bune practici:

  • Comutarea la un alt cont în shell (de exemplu, de la john la root) pentru o sesiune interactivă
  • Executarea unei singure comenzi ca alt utilizator fără a comuta complet sesiunile
  • Schimbarea utilizatorului sub care rulează un serviciu sau proces — critic pentru consolidarea securității
  • Schimbarea proprietarului fișierelor și directoarelor — esențial după migrări, restaurări sau implementări
  • Modificarea atributelor contului utilizator — redenumirea utilizatorilor, schimbarea UID-urilor sau ajustarea apartenențelor la grupuri

Acest ghid acoperă toate aceste scenarii în profunzime, explicând când să folosești fiecare abordare, cum să o faci în siguranță și care greșeli trebuie evitate — pentru a putea gestiona utilizatorii Linux cu încredere fără a rupe permisiunile, serviciile sau accesul.

Comutarea la Alt Utilizator (Shell Interactiv)

Când aveți nevoie de o sesiune completă de terminal interactiv ca alt utilizator — pentru administrarea sistemului, testarea comportamentului aplicației sub un cont diferit, sau accesarea unui cont de serviciu — Linux oferă două instrumente principale: su și sudo.

Utilizarea su (Comutare Utilizator)

Comanda su înlocuiește identitatea utilizatorului curent cu altul:

su - username

Indicatorul - (scris și ca -l sau --login) este important: încarcă mediul complet de conectare al utilizatorului țintă, inclusiv directorul home, PATH, profilul shell și variabilele de mediu. Fără indicatorul -, moșteniți o mare parte din mediul curent, ceea ce poate cauza comportament subtil și confuz — în special la rularea scripturilor sau serviciilor.

Pentru a comuta direct la root:

su -

> Notă de securitate: Pe multe distribuții Linux moderne, contul root are parola dezactivată implicit (în special pe sistemele bazate pe Ubuntu). În aceste cazuri, su la root va eșua, iar sudo este abordarea corectă.

Utilizarea sudo -i (Preferată pentru Shell-uri Root/Admin)

sudo -i

Aceasta vă oferă un shell de conectare root echivalent cu su -, dar se autentifică folosind propriile privilegii sudo în loc să necesite parola root. Aceasta este abordarea recomandată pe majoritatea distribuțiilor moderne deoarece:

  • Evită necesitatea de a partaja sau cunoaște parola root
  • Toate acțiunile sunt înregistrate prin pista de audit sudo
  • Respectă configurația și restricțiile sudoers

Comutarea la Alt Utilizator cu Shell de Conectare via sudo

sudo -iu username

Aceasta combină -i (shell de conectare) și -u (utilizator țintă), oferindu-vă un mediu curat de conectare ca utilizatorul specificat — fără a fi nevoie de parola acelui utilizator.

Executați o singură comandă ca alt utilizator

Adesea nu aveți nevoie de o sesiune interactivă completă — trebuie doar să executați o comandă cu o identitate diferită. Acesta este cel mai comun și cel mai sigur model pentru escaladarea privilegiilor.

Folosind sudo -u

sudo -u username whoami
sudo -u postgres psql

Al doilea exemplu este extrem de comun în administrarea bazelor de date — comutarea la utilizatorul de sistem postgres pentru a accesa PostgreSQL fără autentificare prin parolă.

Executați o comandă cu un mediu de conectare curat

sudo -iu username command_here

Aceasta asigură că comanda se execută cu mediul complet al utilizatorului țintă, nu cu variabilele din sesiunea dvs. curentă.

Executați o comandă ca Root

sudo systemctl restart nginx

Acesta este modelul standard pentru sarcini administrative: executați o singură comandă privilegiată fără a deschide o shell root.

Schimbați utilizatorul sub care rulează un serviciu (systemd)

Pe practic toate distribuțiile Linux moderne, systemd gestionează serviciile. Din motive de securitate, fiecare serviciu ar trebui să ruleze sub un cont de utilizator dedicat și neprivilegiat, mai degrabă decât root. Rularea serviciilor ca root este un risc de securitate semnificativ — dacă serviciul este compromis, atacatorul obține acces root la întregul sistem.

Acest lucru este deosebit de important pe Servere Dedicate și în mediile VPS de producție unde pot rula simultan mai multe servicii.

Verificați configurația actuală a serviciului

systemctl cat myservice.service

Căutați directivele User= și Group= în secțiunea [Service]:

[Service]
User=www-data
Group=www-data

Suprascrieti utilizatorul serviciului (metoda sigură)

În loc să editați fișierul unit original (care poate fi suprascris la actualizări de pachete), utilizați systemctl edit pentru a crea o suprasciere drop-in:

sudo systemctl edit myservice.service

Aceasta deschide un editor în care adăugați:

[Service]
User=myuser
Group=mygroup

Salvați fișierul, apoi aplicați modificările:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Verificați că serviciul rulează sub utilizatorul corect

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Inspectați utilizatorul oricărui proces în execuție

ps -eo user,pid,cmd | grep nginx
ps -p <PID> -o user,group,cmd

> Important: Linux nu vă permite să schimbați utilizatorul unui proces deja în execuție în loc. Trebuie să reporniți procesul (sau să configurați managerul de servicii să-l lanseze sub utilizatorul corect) pentru ca modificarea să aibă efect.

Schimbarea proprietarului fișierului cu chown

Proprietatea fișierului este o parte esențială a modelului de permisiuni al Linux. După migrări, implementări, copii de siguranță sau restaurări, proprietatea poate ajunge să fie atribuită utilizatorului greșit — causând erori de permisiune refuzată, aplicații web defecte sau date inaccesibile. Comanda chown este instrumentul tău principal pentru corectarea acesteia.

Aceasta este o sarcină comună atunci când configurezi medii de Găzduire Web Partajată sau implementezi aplicații web pe un VPS.

Schimbarea proprietarului unui fișier

sudo chown username file.txt

Schimbarea atât a proprietarului cât și a grupului

sudo chown username:groupname file.txt

Schimbarea recursivă a proprietății (Utilizează cu precauție)

sudo chown -R username:groupname /var/www/site

Steagul -R aplică schimbarea recursiv tuturor fișierelor și subdirectoarelor. Utilizează aceasta cu atenție — aplicarea ei pe calea greșită (de exemplu, / sau /etc) poate sparge întregul tău sistem.

Păstrarea legăturilor simbolice

sudo chown -h username:groupname symlink

Fără -h, chown urmărește legăturile simbolice și schimbă proprietatea fișierului țintă, nu a legăturii simbolice în sine. Utilizează -h atunci când dorești în mod specific să schimbi proprietatea legăturii simbolice.

Previzualizarea proprietății înainte de a face modificări

Pentru arbori de directoare mari, previzualizează întotdeauna înainte de a aplica o schimbare recursivă chown:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Aceasta arată proprietarul și grupul curent pentru primele două niveluri ale arborelui de directoare, permițându-ți să confirmi domeniul de aplicare al schimbării înainte de a te angaja.

Confirmați-vă Identitatea Actuală

Înainte de a face modificări, verificați întotdeauna cine sunteți și în ce context operați. Acest lucru previne modificările accidentale făcute sub contul greșit.

Verificați Utilizatorul Actual

whoami

Obțineți Informații Complete de Identitate (Utilizator, Grupuri, UID-uri)

id

Exemplu de ieșire:

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)

Vedeți Cine Este Conectat la Sistem

who
w

Verificați Utilizatorul Original Când Utilizați sudo

Când escaladați cu sudo, două variabile de mediu sunt relevante:

echo $USER        # The current effective user (root)
echo $SUDO_USER   # The original user who invoked sudo (e.g., alice)

Această distincție contează în scripturi — $SUDO_USER vă spune cine a rulat de fapt comanda.

Modificați atributele contului utilizatorului

Uneori "schimbarea utilizatorului" înseamnă modificarea contului în sine: redenumirea acestuia, schimbarea UID-ului sau ajustarea apartenențelor la grupuri. Acestea sunt modificări permanente la nivel de sistem care pot afecta autentificările, permisiunile fișierelor și accesul la servicii.

> Bună practică: Înainte de a face modificări ale contului, asigurați-vă că utilizatorul este deconectat și niciun proces nu rulează sub acel cont.

Redenumirea unui utilizator (schimbarea numelui de utilizator)

sudo usermod -l newname oldname

Aceasta schimbă numele de autentificare, dar nu redenumește automat directorul home. Pentru a muta și redenumi și directorul home:

sudo usermod -d /home/newname -m newname

Dacă utilizatorul are un grup primar cu același nume ca vechiul nume de utilizator (care este implicit pe majoritatea distribuțiilor), actualizați și numele grupului:

sudo groupmod -n newname oldname

Schimbarea UID-ului unui utilizator

sudo usermod -u 2001 username

> Critic: După schimbarea unui UID, toți fișierul deținuți anterior de vechiul UID vor apărea ca fiind deținuți de un ID numeric necunoscut. Trebuie să remediați aceasta imediat:

sudo find / -user oldUID -exec chown -h username {} ;

Înlocuiți oldUID cu UID-ul numeric anterior. Această comandă caută în întregul sistem de fișiere fișiere cu UID-ul vechi și le reatribuie noului nume de utilizator.

Adăugarea unui utilizator la un grup

Cel mai frecvent caz de utilizare este acordarea accesului sudo unui utilizator:

Debian/Ubuntu:

sudo usermod -aG sudo username

RHEL / AlmaLinux / Rocky Linux:

sudo usermod -aG wheel username

Steagul -a este critic — adaugă utilizatorul la grup fără a-l elimina din grupurile existente. Omiterea -a va înlocui toate apartenența la grupuri doar cu grupul specificat.

Verificarea apartenenței la grup

id username

Foaie de referință rapidă

Iată o referință consolidată pentru toate operațiunile de comutare și gestionare a utilizatorilor acoperite în acest ghid:

SarcinăComandă
Comutare la alt utilizator (shell de conectare)su - username
Comutare la alt utilizator via sudosudo -iu username
Deschidere shell rootsudo -i
Executare comandă ca alt utilizatorsudo -u username command
Executare comandă ca postgressudo -u postgres psql
Verificare utilizator curentwhoami
Verificare identitate completă și grupuriid
Verificare invoker sudo originalecho $SUDO_USER
Schimbare proprietar fișiersudo chown username file
Schimbare proprietar și grup fișiersudo chown username:group file
Schimbare proprietate recursivăsudo chown -R username:group /path
Previzualizare proprietate directorfind /path -maxdepth 2 -printf '%u:%g %pn'
Schimbare utilizator serviciu (systemd)sudo systemctl edit myservice.service
Reîncărcare systemd după modificărisudo systemctl daemon-reload
Verificare utilizator proces`ps -eo user,pid,cmdgrep service`
Redenumire utilizatorsudo usermod -l newname oldname
Mutare director homesudo usermod -d /home/newname -m newname
Schimbare UIDsudo usermod -u 2001 username
Reparare proprietate după schimbare UIDsudo find / -user oldUID -exec chown -h username {} ;
Adăugare utilizator la grup sudosudo usermod -aG sudo username
Verificare apartenență grupid username

Rezumat

Gestionarea utilizatorilor în Linux nu este o singură operație — este o familie de sarcini conexe, fiecare cu propriile instrumente și implicații:

  • Utilizați sudo -iu username pentru sesiuni interactive ca alt utilizator (preferat în locul su pe sistemele moderne)
  • Utilizați sudo -u username command pentru executarea comenzilor individuale cu o identitate diferită
  • Utilizați systemctl edit pentru a schimba în siguranță utilizatorul cu care rulează un serviciu systemd
  • Utilizați chown pentru a remedia proprietatea fișierelor după implementări, migrări sau probleme de permisiuni
  • Utilizați usermod pentru modificări permanente ale contului — redenumire, modificări UID și gestionarea grupurilor

Înțelegerea acestor distincții vă ajută să evitați greșelile comune, cum ar fi ruperea permisiunilor serviciilor, blocarea accesului la fișiere sau acordarea accidentală de privilegii excesive.

Dacă rulați o infrastructură bazată pe Linux — fie că este un server web, o bază de date sau o stivă de aplicații personalizată — un mediu de găzduire configurabil corespunzător face gestionarea utilizatorilor semnificativ mai ușoară. AlexHost oferă Panouri de Control VPS și opțiuni de VPS cu cPanel flexibile care vă oferă acces complet root alături de interfețe de gestionare intuitive, astfel încât să puteți aplica totul din acest ghid cu încredere.