If-Koubou

Care este diferența dintre Sudo și Su în Linux?

Care este diferența dintre Sudo și Su în Linux? (Cum să)

Dacă sunteți utilizator Linux, ați văzut probabil referințe la sudo și su. Articolele de pe site-ul How-To Geek și în altă parte instruiesc utilizatorii Ubuntu să folosească sudo și alți utilizatori ai distribuțiilor Linux pentru a utiliza su, dar care este diferența?

Sudo și su sunt două moduri diferite de a obține privilegii de rădăcină. Fiecare funcționează într-un mod diferit, iar diferite distribuții Linux utilizează implicit diferite configurații.

Utilizatorul rădăcină

Atât su, cât și sudo sunt folosite pentru a rula comenzi cu permisiuni root. Utilizatorul rădăcină este, în principiu, echivalent cu utilizatorul de administrator pe Windows - utilizatorul rădăcină are permisiuni maxime și poate face orice pentru sistem. Utilizatorii obișnuiți pe Linux rulează cu permisiuni reduse - de exemplu, nu pot instala programe sau nu pot scrie în directoarele de sistem.

Pentru a face ceva care necesită aceste permisiuni, va trebui să le achiziționați cu su sau sudo.

Su vs. Sudo

Comanda su comută la utilizatorul super - sau la root - când îl executați fără alte opțiuni. Va trebui să introduceți parola contului rădăcină. Aceasta nu este totuși comanda su, dar - puteți să o utilizați pentru a comuta la orice cont de utilizator. Dacă executați su bob , vi se va cere să introduceți parola lui Bob și shell-ul va trece la contul de utilizator Bob.

După ce terminați executarea comenzilor în coajă rădăcină, trebuie să tastați Ieșire pentru a părăsi shell-ul rădăcină și pentru a reveni la modul privilegii limitate.

Sudo rulează o singură comandă cu privilegii de root. Când executați comanda sudo, sistemul vă solicită parola contului curent de utilizator înainte de a fi rulat comanda ca utilizator rădăcină. În mod implicit, Ubuntu își amintește parola timp de cincisprezece minute și nu va mai solicita o parolă până când cele 15 minute nu sunt valabile.

Aceasta este o diferență majoră între su și sudo. Su vă schimbă în contul de utilizator rădăcină și necesită parola contului rădăcină. Sudo rulează o singură comandă cu privilegii de root - nu trece la utilizatorul rădăcină sau necesită o parolă de utilizator separată.

Ubuntu vs. alte distribuții Linux

Comanda su este modalitatea tradițională de a obține permisiuni root pe Linux. Comanda sudo a existat de foarte mult timp, dar Ubuntu a fost prima distribuție populară Linux care mergea în mod implicit sudo-only. Când instalați Ubuntu, contul rădăcină standard este creat, dar nu i se atribuie nici o parolă. Nu vă puteți autentifica ca root până când nu atribuiți o parolă contului rădăcină.

Există mai multe avantaje pentru utilizarea sudo în loc de su în mod implicit. Utilizatorii Ubuntu trebuie să furnizeze și să rețină o singură parolă, în timp ce Fedora și alte distribuții necesită crearea parolelor separate de cont root și de utilizator în timpul instalării.

Un alt avantaj este că descurajează utilizatorii să se logheze ca utilizator rădăcină - sau folosind su pentru a obține o coajă de rădăcină - și păstrarea coajă rădăcină deschis pentru a face munca lor normală. Rularea mai puține comenzi ca root crește securitatea și previne schimbările accidentale la nivel de sistem.

Distribuțiile bazate pe Ubuntu, inclusiv Linux Mint, utilizează de asemenea sudo în loc de su în mod implicit.

Câteva trucuri

Linux este flexibil, deci nu prea este nevoie de prea multă muncă pentru ca munca să funcționeze în mod similar cu sudo - sau invers.

Pentru a executa o singură comandă ca utilizator root cu su, executați următoarea comandă:

su -c 'command'

Acest lucru este similar cu rularea unei comenzi cu sudo, dar veți avea nevoie de parola contului rădăcină în locul parolei contului curent al utilizatorului.

Pentru a obține o coajă completă, interactivă cu sudo, rulați sudo -i.

Va trebui să furnizați parola contului curent de utilizator în locul parolei contului rădăcină.

Activarea Utilizatorului Root î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ă acest lucru.

sudo passwd rădăcină

Sudo vă va solicita parola contului curent de utilizator înainte de a vă putea stabili o nouă parolă. Utilizați noua parolă pentru a vă conecta ca root din promptul de conectare la terminal sau cu comanda su. Niciodată nu ar trebui să rulați un mediu grafic complet ca utilizator rădăcină - aceasta este o practică de securitate foarte slabă și multe programe vor refuza să lucreze.

Adăugarea utilizatorilor la fișierul Sudoers

Numai conturile de tip administrator din Ubuntu pot rula comenzi cu sudo. Puteți modifica tipul unui cont de utilizator din fereastra de configurare Conturi utilizator.

Ubuntu desemnează automat contul de utilizator creat în timpul instalării ca un cont de administrator.

Dacă utilizați o altă distribuție Linux, puteți acorda permisiunea utilizatorului să utilizeze sudo executând visudo comandă cu privilegii de root (așa că executați su prima sau utilizarea su -c).

Adăugați următoarea linie în fișier, înlocuind-o utilizator cu numele contului de utilizator:

utilizator ALL = (ALL: ALL) ALL

presa Ctrl-X și apoi Y pentru a salva fișierul. De asemenea, este posibil să adăugați un utilizator unui grup specificat în fișier. Utilizatorii din grupurile specificate în fișier vor avea în mod automat privilegii sudo.

Versiunile grafice ale lui Su

Linux suportă, de asemenea, versiunile grafice ale su, care solicită parola într-un mediu grafic. De exemplu, puteți executa următoarea comandă pentru a primi o solicitare de parolă grafică și a rula browser-ul de fișiere Nautilus cu permisiuni root. presa 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ă - păstrează setările actuale ale desktop-ului dvs., astfel încât programele grafice nu vor părea în afara locului când le lansați ca utilizator diferit. Programe precum gksu sunt modul preferat de lansare a aplicațiilor grafice cu privilegii de 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ă fiți pregătiți să întâlniți su și sudo! Veți întâlni atât dacă utilizați diferite distribuții Linux.