Care este diferența dintre sudo și su?

Acum câteva zile am primit o întrebare de la Miguel, un cititor obișnuit de blog și comentator compulsiv, cu privire la care este exact diferența dintre sudo y su. În special, Miguel era îngrijorat dacă o metodă este mai sigură decât cealaltă. Se întâmplă că citisem acolo că sudo nu era suficient de sigur și am vrut să știu mai multe. Aceasta este o altă postare dedicată celor care au cerut mai multe articole despre misterele terminale.

Su

Programul su Vă permite să utilizați shell-ul altui utilizator fără a vă deconecta din sesiunea curentă. Este folosit în mod obișnuit pentru a obține permisiuni root pentru operațiuni administrative fără a fi nevoie să vă deconectați și să vă reconectați. Unele medii desktop, inclusiv GNOME și KDE, au programe care solicită grafic o parolă înainte de a permite utilizatorului să execute o comandă care ar necesita de obicei un astfel de acces.

Numele su provine din engleză ssubstitut ufi (utilizator substitut). Există, de asemenea, cei care o fac să derive din superspreadinguser (super-utilizator, adică utilizatorul root sau administrator), deoarece este de obicei utilizat pentru a adopta rolul de administrator de sistem.

Când alergi, su Solicită parola contului pe care doriți să îl accesați și, dacă este acceptat, acesta oferă acces la acel cont.

[guy @ localhost] $ Parola dvs.: [root @ localhost] # ieșire deconectare [guy @ localhost] $

Dacă nu puneți un utilizator, acesta este accesat ca administrator. Cu toate acestea, este de asemenea posibil să treceți un alt nume de utilizator ca parametru.

[guy @ localhost] $ su mongo Parolă: [mongo @ localhost] # exit logout [guy @ localhost] $

Odată introdusă parola, putem executa comenzile de parcă am fi celălalt utilizator. În scris ieşire, ne întoarcem la utilizatorul nostru.

O variantă larg utilizată este de a utiliza su urmată de o liniuță. Astfel, pentru a vă conecta ca root, trebuie să intrați a lui - și să vă conectați ca alt utilizator dvs. - alt utilizator. Diferența dintre utilizarea scriptului sau nu? Este recomandat să utilizați scriptul, deoarece simulează că vă veți conecta cu acel utilizator; prin urmare, execută toate fișierele de pornire ale acelui utilizator, schimbă directorul curent în HOME-ul acelui utilizator, modifică valoarea unor variabile de sistem adaptându-le la noul utilizator (HOME, SHELL, TERM, USER, LOGNAME, printre altele) și alții mai multe lucruri.

Un administrator de sistem trebuie să fie foarte atent atunci când alege o parolă pentru contul root / administrator, pentru a evita atacul unui utilizator neprivilegiat care rulează su. Unele sisteme de tip Unix au un grup de utilizatori numit roată, care cuprinde singurii care pot executa su. Acest lucru poate reduce sau nu problemele de securitate, întrucât un intrus ar putea pur și simplu prelua unul dintre aceste conturi. El su Cu toate acestea, GNU nu acceptă utilizarea grupului respectiv; acest lucru a fost făcut din motive filosofice.

sudo

O comandă asociată, numită sudo, execută o comandă ca un alt utilizator, dar respectând o serie de restricții asupra cărora utilizatorii pot executa ce comenzi în numele cărora alți utilizatori (specificate de obicei în fișier / etc / sudoers).

Pe de altă parte, spre deosebire de su, sudo solicită utilizatorilor propria parolă în locul utilizatorului solicitat; Acest lucru permite delegarea comenzilor către utilizatori pe alte mașini fără a fi nevoie să partajați parole, reducând riscul de a lăsa terminalele nesupravegheate.

Probleme Sudo: perioada de grație

Avantajul sudo în respect față de su este că execută numai comanda solicitată pretinzând a fi celălalt utilizator, fără a schimba efectiv utilizatorul curent. Aceasta implică faptul că se poate executa o comandă ca administrator și, în următoarea secundă, vor avea privilegiile utilizatorului pe care îl foloseau înainte ... sau aproape.

Unii văd ca o încălcare a securității faptul că sudo acordați o „perioadă de grație” care permite utilizatorului să execute comenzi ca alt utilizator fără a fi nevoie să introduceți în mod repetat sudo în fața comenzii și a parolei după executarea acesteia. După acea „perioadă de grație”, sudo ne va cere din nou parola.

Acest lucru este „rău”, în esență, deoarece cineva ne-ar putea prelua computerul după ce am introdus parola sudo și, în timp ce „perioada de grație” este activă, faceți un DISAST.

Din fericire, este posibil să dezactivați „perioada de grație”, ceea ce va îmbunătăți securitatea sistemului dvs. Doar adăugați o linie în fișier / etc / sudoers:

sudo nano / etc / sudoers

Și adăugați următoarea linie la sfârșitul fișierului:

Valori implicite: ALL timestamp_timeout = 0

Modificarea are efect imediat, fără a fi nevoie să reporniți sistemul.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   helk el a spus

    De fapt, DACĂ puteți intra cu drepturi de administrator cu sudo și rămâneți așa cum faceți cu su -, pentru aceasta trebuie să scrieți: sudo -s schimbând astfel utilizatorul curent și lăsând timpul de grație ca o glumă (deoarece puteți rămâne ca asta atâta timp cât vrei, ca și la tine)

  2.   Miquel Mayol i Tur el a spus

    Mulțumesc pentru mențiune, dar adevăratul credit revine chat-ului Sabayon - pe care nu îl mai folosesc pentru că mi s-a rupt hard diskul și am preferat să mă întorc la Ubuntu -.

    Motivul pentru care mi-au dat a fost că uneori, când fac sudo anumite configurații, nu primesc permisiuni absolute și rămân configurate incorect. Și prin „conectarea” cu su ca root pentru sarcini de actualizare și întreținere, împiedicați acest lucru să se întâmple.

    Apoi v-am trimis un e-mail pentru că am promis să împărtășesc această constatare care mi s-a părut non-banală.

    Deoarece Ubuntu este instalat implicit fără utilizator root, trebuie doar să rulați

    „Sudo passwd root”

    introduceți parola, confirmați-o și apoi
    „Su root”
    pentru operațiuni de întreținere, pe lângă evitarea punerii sudo la fiecare comandă.

    În principiu, în Ubuntu contul rădăcină este eliminat pentru a nu mă autentifica întotdeauna cu acest cont, dar din moment ce mi-au dat sfatul aproape pe tonul că folosirea sudo a fost sacrilegiu, doar în cazul în care l-am urmat.

  3.   Indicatorul Nill el a spus

    Ai putea accesa fișierul / etc / shadow și să schimbi hash-ul parolei root la hash-ul normal al parolei utilizatorului și apoi să faci o modificare a parolei pentru root ??? În altă perioadă, încerc la fel ...

  4.   Să folosim Linux el a spus

    Clar. Nu este exclusiv Fedora.

  5.   mfcollf77 el a spus

    Apoi, dintre cele două pot fi instalate? Am crezut că «SU» era doar în FEDORA.

  6.   Diego Kisai Alba Gallart el a spus

    Informații foarte bune, cu aceasta cu siguranță îndoielile multora vor dispărea, pentru că știu mai mulți care au această îndoială.

  7.   Alex el a spus

    În ubunto cred că îmi amintesc că nu puteți utiliza comanda su (pentru a intra ca utilizator root)

  8.   Hazan Perez el a spus

    Ei bine, pentru a „recupera” parola de root (de fapt, orice altă parolă), puteți face un „atac” asupra fișierului de parolă de sistem cu John The Ripper. Nu voi spune mai multe despre asta.

    Poate există și alte metode ... Poate schimbarea parolei introducând cu „sudo su” și apoi comanda „passwd”. Ar fi interesant să vedem ce răspund alți oameni ...

  9.   Să folosim Linux el a spus

    Exact!

  10.   Să folosim Linux el a spus

    Așa este ... trebuie să-i mulțumesc lui Miguel Mayol i Tur ... el a fost cel cu ideea. 🙂
    Noroc! Paul.

  11.   Şef el a spus

    Mulțumesc, ca întotdeauna o mare contribuție. Apreciem.

  12.   Să folosim Linux el a spus

    Multumesc sefu! O imbratisare! Paul.

  13.   Jerome Navarro el a spus

    Diferența dintre „su” și „sudo” este „face”

  14.   Erick el a spus

    Am uitat parola de root, din fericire pot folosi sudo, iar pentru a folosi su, folosesc „sudo su” și nu cere trecere (?)
    Stie cineva cum sa afle parola root (am acces la root prin sudo)?

    1.    marvergarab el a spus

      sudo passwd

  15.   Să folosim Linux el a spus

    Ha! Foarte isteț!

  16.   Țara Fabian el a spus

    cel care vrea să recupereze parola root ar fi „sudo passwd root” și acolo vă va cere să introduceți una nouă

  17.   alex-pilloku@hmail.com el a spus

    salut cum e viața ta

  18.   SynFlag el a spus

    Ne pare rău, dar, folosind comanda su, așa:

    su -c "comanda", este același lucru cu utilizarea sudo fără perioada de grație. Nu văd nevoia de sudo.

    Utilizarea REALĂ a sudo este de a oferi anumitor utilizatori posibilitatea de a utiliza una sau alta comandă, este mai utilizată în companii, pentru a nu fi nevoit să chrooteze, lucru care nu se poate face cu su.

  19.   yacardis el a spus

    Dragă, trebuie să fac un Linux TP și trebuie să răspund la câteva întrebări simple. Poate mă pot ajuta. Multumesc de acum:

    Ce comandă este cea care ne permite să instalăm / ștergem / modificăm pachetele debian?
    Care este comanda care ne permite să gestionăm mai ușor instalarea
    pachete în debian?
    Care este comanda pentru a putea instala pachetele rpm?
    Ce opțiune folosim pentru a dezinstala un pachet?
    Care este directorul în care se află depozitele yum?
    Pentru ce este yum?
    Ce opțiune folosim pentru a căuta un pachet cu yum?
    Ce opțiune folosim pentru a șterge un pachet?
    Ce opțiune putem folosi pentru a actualiza sistemul?
    Ce scrisori identifică permisele?
    Ce înseamnă fiecare dintre ei?
    Ce comenzi afișează permisiunile unui fișier?
    Care sunt cele trei grupuri în care sunt împărțite permisiunile?
    Ce două modalități există pentru a implementa permisiunile?
    Ce sistem numeric utilizează permisele?
    Ce greutate au aceste scrisori?
    Ce sunt permisele speciale?
    Care sunt permisiunile speciale existente și la ce servesc utilizatorii?
    Ce comenzi folosesc pentru a modifica permisiunile?
    Ce parametri folosesc pentru a da permisiunile de executare unui fișier?
    Ce parametri sunt utilizați pentru a da permisiunile de citire numai unui grup?
    Ce parametri sunt folosiți pentru a da permisiuni de citire / scriere grupului și pentru a elimina scrierea de la utilizatorul care deține fișierul?
    Ce permisiuni sunt create în mod implicit pentru fișiere și directoare?
    Ce comandă folosim pentru a o verifica?
    Cum schimbăm masca implicită?
    Cum facem diferită masca folosită? (Utilizați o mască implicită care lasă proprietarii doar toate permisiunile.)
    Ce comandă listează procesele? Menționați diferiți parametri și utilizarea acestora.
    Care este procesul care începe totul?
    Enumerați procesele care corespund utilizatorului conectat.
    Enumerați toate procesele din sistem.
    Ce opțiuni folosesc pentru a obține informații suplimentare?
    Enumerați toate procesele care sunt utilizate într-un terminal
    Ce opțiune listează procesele și dependențele acestora?
    Explicați ce este un proces părinte-copil și cum să îl identificați
    Care comandă listează procesele sub formă de copaci?
    Ce comandă monitorizează procesele în timp real?
    Monitorizați un singur proces
    Ce comandă arată utilizarea memoriei?
    Ce parametru arată memoria în megaocteți?
    Ce parametru are în intervale?
    Ce comandă afișează informații cu privire la timpul în care o echipă este oprită?
    Ce comandă folosesc pentru a ucide procesele?
    Cu ce ​​se ocupă aceste procese pentru a fi finalizate?
    Ce tipuri de semnale sunt cele mai frecvente?
    Enumerați tipurile de semnale acceptate.
    Într-un terminal, faceți testul vi, apoi mergeți la un alt terminal, căutați procesul și ucideți-l cu un semnal 15. Idem, dar cu un semnal 9.
    Care este diferența dintre semnalul 9 și 15?
    Care funcționează în mod implicit?
    De ce se execută un proces în fundal? Și în prim-plan?
    Rulați testul vi și apoi apăsați ctrl + z, ce s-a întâmplat?
    Repetați testul vi, ctr + z, de 4 ori, cum pot termina ceea ce am eșuat?
    Treceți unul dintre procese în prim plan și închideți vi.
    Ce parametru al unei comenzi executăm pentru a nu ocupa shell-ul?
    Ce comandă modifică prioritățile unui proces care rulează deja? Cum ați schimba prioritatea terminalului care rulează?
    Ce valori de nivel există și care este ierarhia lor?
    Deschideți fișierul / etc / passwd și vedeți ce nivel de prioritate are.
    Schimbați nivelul de prioritate la 4 și apoi la 25 Puteți atribui ambele? De ce?
    Enumerați procesele cu valorile lor prioritare.
    Ce comandă monitorizează toate procesele care rulează?

  20.   etc. el a spus

    Bună, vreau să dezactivez sudo, așa cum fac și eu. Obțin acest lucru:
    [sudo] parola pentru xxx:
    xxx nu se află în fișierul sudoers. Acest incident va fi raportat.

    pe măsură ce îl dezactivez, deoarece folosesc su în debian

    1.    să folosim Linux el a spus

      Buna ecc!

      Cred că ar fi mai bine dacă ridicați această întrebare în serviciul nostru de întrebări și răspunsuri cere DesdeLinux astfel încât întreaga comunitate să vă poată ajuta cu problema dumneavoastră.

      O îmbrățișare, Pablo.

  21.   Berthold el a spus

    Salut. Am folosit comanda de temperatură a hard diskului în Linux Mint: „sudo hddtemp / dev / sda”, cere parola și îmi dă rezultatul scontat.
    dar, atunci când executați în același terminal „hddtemp / dev / sda” îmi spune că permisiunea a fost refuzată.
    Deci, perioada de grație nu funcționează asupra mea, de ce este?

  22.   Berthold el a spus

    Bună ziua blogului.
    De asemenea, am constatat că, atunci când distro-ul este instalat (ex: ubuntu, linux mint), se cere o parolă de administrator.
    Și în interfața grafică din centrul de control, am folosit opțiunea de a schimba parola utilizatorului meu.
    Deci, acum, folosind „su -”, îmi cere o parolă, care nu este cea a utilizatorului meu actual, ci cea pe care am folosit-o când am instalat distro, care este încă utilizatorul root sau administrator.
    Acest lucru ar avea ca rezultat ca mulți utilizatori să uite adevărata parolă de administrator.

  23.   Kendall Davila el a spus

    Bună, explicația dvs. este excelentă, foarte clară, scurtă și concisă. Vă mulțumim pentru contribuție