Care este diferența dintre Sudo și Su în Linux?
Publicat: 2022-01-29Dacă sunteți un utilizator Linux, probabil că ați văzut referințe atât la sudo, cât și la su. Articolele de aici despre How-To Geek și din alte părți instruiesc utilizatorii Ubuntu să folosească sudo și utilizatorii altor distribuții Linux să folosească su, dar care este diferența?
Sudo și su sunt două moduri diferite de a obține privilegii de root. Fiecare funcționează într-un mod diferit, iar distribuțiile Linux diferite folosesc configurații diferite în mod implicit.
Utilizatorul rădăcină
Atât su, cât și sudo sunt folosite pentru a rula comenzi cu permisiuni root. Utilizatorul root este practic echivalent cu utilizatorul administrator pe Windows - utilizatorul root are permisiuni maxime și poate face orice pentru sistem. Utilizatorii obișnuiți pe Linux rulează cu permisiuni reduse - de exemplu, nu pot instala software sau scrie în directoarele de sistem.
Pentru a face ceva care necesită aceste permisiuni, va trebui să le obțineți cu su sau sudo.
Su vs. Sudo
Comanda su trece la super utilizator - sau utilizator root - atunci când o executați fără opțiuni suplimentare. Va trebui să introduceți parola contului root. Totuși, aceasta nu este tot ce face comanda su - o puteți folosi pentru a comuta la orice cont de utilizator. Dacă executați comanda su bob , vi se va solicita să introduceți parola lui Bob și shell-ul va comuta la contul de utilizator al lui Bob.
Odată ce ați terminat de rulat comenzi în shell-ul rădăcină, ar trebui să tastați exit pentru a părăsi shell-ul rădăcină și a reveni la modul cu privilegii limitate.
Sudo rulează o singură comandă cu privilegii root. Când executați comanda sudo , sistemul vă solicită parola contului de utilizator curent înainte de a rula comanda ca utilizator root. În mod implicit, Ubuntu își amintește parola timp de cincisprezece minute și nu va cere din nou o parolă până la expirarea celor cincisprezece minute.
Aceasta este o diferență cheie între su și sudo. Su vă trece la contul de utilizator root și necesită parola contului root. Sudo rulează o singură comandă cu privilegii root — nu trece la utilizatorul root și nu necesită o parolă separată pentru utilizatorul root.
Ubuntu vs alte distribuții Linux
Comanda su este modalitatea tradițională de obținere a permisiunilor root pe Linux. Comanda sudo există de multă vreme, dar Ubuntu a fost prima distribuție Linux populară care a folosit în mod implicit doar sudo. Când instalați Ubuntu, este creat contul rădăcină standard, dar nu i se atribuie nicio parolă. Nu vă puteți autentifica ca root până nu atribuiți o parolă contului root.
Există mai multe avantaje în utilizarea implicită a sudo în loc de su. Utilizatorii Ubuntu trebuie să furnizeze și să-și amintească doar o singură parolă, în timp ce Fedora și alte distribuții necesită să creați parole separate pentru contul de root și utilizator în timpul instalării.
Un alt avantaj este că descurajează utilizatorii să se conecteze ca utilizator rădăcină - sau să folosească su pentru a obține un shell rădăcină - și să păstreze shell-ul rădăcină deschis pentru a-și face munca normală. Rularea mai puține comenzi ca root crește securitatea și previne modificări accidentale la nivelul întregului sistem.
Distribuțiile bazate pe Ubuntu, inclusiv Linux Mint, folosesc, de asemenea, sudo în loc de su în mod implicit.
Câteva trucuri
Linux este flexibil, așa că nu este nevoie de multă muncă pentru ca su să funcționeze în mod similar cu sudo - sau invers.
Pentru a rula o singură comandă ca utilizator root cu su, executați următoarea comandă:
su -c 'comanda'
Acest lucru este similar cu rularea unei comenzi cu sudo, dar veți avea nevoie de parola contului root în loc de parola contului dvs. de utilizator actual.
Pentru a obține un shell rădăcină complet, interactiv cu sudo, rulați sudo –i.
Va trebui să furnizați parola contului dvs. de utilizator actual în loc de parola contului root.
Activarea utilizatorului rădăcină în Ubuntu
Pentru a activa contul de utilizator root pe Ubuntu, utilizați următoarea comandă pentru a seta o parolă pentru acesta. Rețineți că Ubuntu recomandă împotriva acestui lucru.
sudo passwd root
Sudo vă va solicita parola contului dvs. de utilizator curent înainte de a putea seta o nouă parolă. Utilizați noua parolă pentru a vă conecta ca root dintr-un prompt de conectare la terminal sau cu comanda su. Nu ar trebui să rulați niciodată un mediu grafic complet ca utilizator root - aceasta este o practică de securitate foarte slabă și multe programe vor refuza să funcționeze.
Adăugarea de utilizatori la fișierul Sudoers
Numai conturile de tip administrator din Ubuntu pot rula comenzi cu sudo. Puteți schimba tipul unui cont de utilizator din fereastra de configurare a conturilor de utilizator.

Ubuntu desemnează automat contul de utilizator creat în timpul instalării ca cont de administrator.
Dacă utilizați o altă distribuție Linux, puteți acorda unui utilizator permisiunea de a utiliza sudo rulând comanda visudo cu privilegii de root (deci rulați mai întâi su sau utilizați su -c ).
Adăugați următoarea linie la fișier, înlocuind utilizatorul cu numele contului de utilizator:
utilizator ALL=(ALL:ALL) ALL
Apăsați Ctrl-X și apoi Y pentru a salva fișierul. De asemenea, puteți adăuga un utilizator la un grup specificat în fișier. Utilizatorii din grupurile specificate în fișier vor avea automat privilegii sudo.
Versiuni grafice ale lui Su
Linux acceptă, de asemenea, versiuni grafice de su, care vă cer parola într-un mediu grafic. De exemplu, puteți rula următoarea comandă pentru a obține o solicitare grafică a parolei și pentru a rula browserul de fișiere Nautilus cu permisiuni root. Apăsați Alt-F2 pentru a rula comanda dintr-un dialog grafic de rulare fără a lansa un terminal.
gksu nautilus
Comanda gksu are și alte câteva trucuri în mânecă — vă păstrează setările actuale de pe desktop, astfel încât programele grafice nu vor părea deplasate atunci când le lansați ca alt utilizator. Programele precum gksu sunt modalitatea preferată de lansare a aplicațiilor grafice cu privilegii root.
Gksu folosește un backend bazat pe su sau sudo, în funcție de distribuția Linux pe care o utilizați.
Acum ar trebui să fii pregătit să întâlnești atât su, cât și sudo! Le vei întâlni pe ambele dacă folosești distribuții Linux diferite.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · top · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști