Sudo (rusă)

Această pagină are nevoie de o escortă

sudo (administrator de înlocuire în limba engleză) permite administratorului de sistem să delege autoritatea pentru a permite anumitor utilizatori (sau unui grup de utilizatori) să execute anumite comenzi cu superuser sau alte drepturi de utilizator, oferind control asupra echipele și argumentele acestora.







Argumentare

Sudo este o alternativă la su pentru executarea comenzilor cu privilegii superuser (root). Spre deosebire de su. care execută o cochilie cu privilegii de root, și dă toate comenzile suplimentare ca root, sudo prevede o creștere temporară privilegii pentru aceeași echipă. Acordarea de privilegii de root numai atunci când este necesar, utilizarea sudo reduce probabilitatea ca o greșeală de scriere sau eroare în comanda executată va produce un sistem de acțiuni distructive.

Sudo poate fi, de asemenea, utilizat pentru a executa comenzi în numele altor utilizatori; În plus, sudo înregistrează toate comenzile și încercările de acces nereușite pentru auditul de securitate.

Pentru a începe să utilizați sudo ca utilizator neprivilat, trebuie să îl configurați în mod corespunzător. Pentru aceasta, citiți secțiunea privind configurația.

utilizarea

Utilizatorii pot prefixa comenzile cu cuvântul sudo. Pentru a le executa cu privilegiile superutilizatorului (sau altui utilizator).

De exemplu, pentru a utiliza pacman:

Consultați manualul sudo pentru mai multe informații.

Executați sudo -ll pentru a afișa configurația curentă sudo.

Utilizarea visudo

Fișierul de configurare / etc / sudoers ar trebui întotdeauna să fie editat cu comanda visudo. visudo blochează fișierul sudoers. salvează modificările la un fișier temporar și verifică dacă fișierul este corect din punct de vedere gramatic înainte de al copia în / etc / sudoers.

Este important să:
  • Este extrem de important ca fișierul sudoers să nu aibă erori de sintaxă! Orice eroare face sudo inoperabil. Editați-o întotdeauna numai cu visudo pentru a preveni erorile.
  • De la visudo (8). Rețineți că această gaură este sigură deoarece permite utilizatorului să ruleze orice program pe care îl dorește, pur și simplu înregistrându-l cu VISUAL sau EDITOR.

Exemple de setări

Configurarea lui sudo se face prin adăugarea de intrări în fișierul / etc / sudoers. Pentru a oferi utilizatorilor privilegiile unui superuser, când intră în sudo înainte de comandă, adăugați următoarea linie:

Permiteți utilizatorului să execute toate comenzile de la orice utilizator, dar numai pe o mașină cu un anumit nume de gazdă:

Acordați membrilor grupului de roți accesul sudo:

Pentru a nu cere parola pentru utilizator:

Permiteți executarea numai a unor comenzi specifice și numai utilizatorilor din gazda specificată:

Notă: Opțiunile cele mai frecvente ar trebui să fie la începutul fișierului, iar cele mai comune, dimpotrivă, la sfârșitul fișierului, deoarece liniile inferioare suprascrie cele superioare. În special, linia adăugată ar trebui să fie după linia% roată. dacă utilizatorul dvs. este în acest grup.

Permiteți ca anumite comenzi specifice să fie executate numai pentru utilizatorul de pe o anumită gazdă și fără o parolă:

Un exemplu detaliat pentru sudori este disponibil în / usr / share / doc / sudo / examples / sudoers. Consultați și manualul sudoers pentru mai multe detalii.

Permisiuni pentru fișierele implicite sudoers

Fișierul sudoers trebuie să aibă proprietarul rădăcină și grupul rădăcină (0). Permisiunile trebuie întotdeauna stabilite ca r - r ----- (0440). Aceste drepturi sunt setate în mod prestabilit, dar dacă le schimbați accidental, acestea ar trebui imediat modificate înapoi, altfel sudo nu va funcționa.

Durata parolei introduse

Poate doriți să schimbați timpul în care sudo va funcționa fără a introduce o parolă. Acest lucru este ușor de atins prin adăugarea opțiunii timestamp_timeout la / etc / sudoers.

De exemplu, pentru a seta timpul de expirare timp de 20 de minute:

Sfat: Dacă doriți ca sudo să necesite întotdeauna o parolă, setați timestamp_timeout la 0. Pentru a nu expira niciodată, setați orice valoare negativă.

Sfaturi și trucuri

Finalizarea automată prin apăsarea tastei Tab în bash

Un timeout pentru toate sesiunile terminale

Important: Acest lucru va permite ca orice proces să vă utilizeze sesiunea open sudo.

Dacă nu doriți să introduceți din nou parola de fiecare dată când deschideți un nou terminal, dezactivați tty_tickets.







Arătați întotdeauna o notă de siguranță

În mod implicit, / etc / sudoers este configurat astfel încât ieșirile de observare de securitate sudo numai atunci când deschideți mai întâi o sesiune:

Pentru a afișa întotdeauna acest mesaj, editați / etc / sudoers. Înlocuiți:

sau doar adăugați această linie dacă nu există.

Variabile de mediu

Dacă aveți o mulțime de variabile de mediu, sau exportați setările de proxy prin export http_proxy = „“. Când utilizați sudo, aceste variabile nu vor fi dezvăluite în ședință publică, cu excepția cazului când executați sudo în Opțiunea -e.

Metoda recomandată de salvare a variabilelor de mediu este înregistrarea lor în env_keep.

Maparea aliaselor

Dacă aveți multe aliasuri instalate, este posibil să observați că nu sunt migrați la sesiunea sudo. Cu toate acestea, acest lucru este ușor de rezolvat. Adăugați doar la dvs.

/ bashrc sau /etc/bash.bashrc:

Insulte umor

Puteți configura sudo, astfel încât atunci când introduceți o parolă incorectă, acesta afișează insulte pline de umor în loc de mesajul standard "Ne pare rău, încercați din nou". Găsiți linia prestabilită în / etc / sudoers și adăugați insulte la lista de opțiuni, separate prin virgule. Rezultatul final ar putea arăta astfel:

Pentru a verifica, tastați sudo -K. pentru a termina sesiunea curentă și pentru a permite lui sudo să solicite din nou parola.

Superuser parola

Puteți să configurați sudo pentru a solicita parola superuserului în locul parolei utilizatorului curent adăugând targetpw sau rootpw în lista opțiunilor Defaults din / etc / sudoers.

Pentru a nu dezvălui parola de root utilizatorilor, puteți interzice acest lucru anumitor grupuri:

Dezactivarea contului rădăcină

Poate doriți să dezactivați autentificarea utilizatorului root. Fără aceasta, atacatorii vor trebui mai întâi să ghicească numele utilizatorului configurat ca sudoer, precum și parola utilizatorului. Vedeți Secure Shell (engleză) # Shutdown pentru un exemplu.

Notă: dacă sunteți deja prins, consultați Recuperarea parolei (limba engleză) pentru asistență.

Parola de root poate fi blocată cu passwd.

O comandă similară va debloca parola de root:

De asemenea, puteți să modificați / etc / shadow și să înlocuiți parola criptată cu "!":

Apoi, pentru a seta o nouă parolă și, astfel, a debloca utilizatorul rădăcină:

Pentru ca gksu să utilizeze implicit sudo, executați:

/.config/kdesurc pentru versiunea kf5 a kdesu):

sau utilizați următoarea comandă (utilizați kwriteconfig5 pentru kf5 versiunea kdesu):

De asemenea, puteți instala kdesudo AUR de la AUR. care acceptă o completare automată de către Tab la introducerea unei comenzi.

Un alt exemplu de setare

Să presupunem că ați creat 3 utilizatori: admin, devel și joe. Utilizatorul "admin" este folosit pentru jurnal, systemctl, mount, kill și iptables; "devel" este folosit pentru a instala pachetele și pentru a edita setările; "joe" este utilizatorul în care sunteți conectat (ă). Pentru a permite "joe" să repornească, închideți sistemul și utilizați netctl, trebuie să facem următoarele:

Editați /etc/pam.d/su și /etc/pam.d/su-1 Solicitați utilizatorului să se afle în grupul de roți, dar nu adăugați pe nimeni.

Limitați datele de autentificare SSH pentru grupul "ssh". Acest grup va include doar "joe".

Adăugați utilizatori în alte grupuri.

Setați permisiunile pentru setări astfel încât devel să le poată edita.

Cu aceste setări, aproape că niciodată nu trebuie să vă conectați ca superuser.

"Joe" se poate conecta la WiFi acasă.

"Joe" nu poate folosi netctl în numele unui alt utilizator.

Când Joe dorește să utilizeze jurnalul sau să omoare un proces spânzurat, poate trece la utilizatorul potrivit:

Dar "joe" nu poate trece la superuser.

Dacă "joe" dorește să înceapă sesiunea de gnu-screen ca admin, poate face acest lucru după cum urmează:

Configurarea sudo cu fișierele atașate la /etc/sudoers.d

sudo procesează fișierele din directorul /etc/sudoers.d/. Aceasta înseamnă că în loc de editare / etc / sudoers. Puteți schimba setările în fișiere separate și le puteți muta în acest director. Acest lucru are două avantaje:

  • Nu este nevoie să editați fișierul sudoers.pacnew;
  • Dacă există o problemă cu noua intrare, puteți distruge pur și simplu fișierul corespunzător, în loc să trebuiască să editați / etc / sudoers.

Formatul intrărilor în aceste fișiere este același ca în fișierul / etc / sudoers în sine. Pentru a le edita direct, utilizați visudo -f / path / to / file. Vedeți secțiunea Includerea altor fișiere din sudoers în sudoers (5) pentru mai multe informații.

Rezolvarea problemelor

Probleme cu TTY prin SSH

În mod implicit, SSH nu alocă tty atunci când execută o comandă de la distanță. Fără tty sudo nu poate dezactiva afișarea parolei atunci când este introdusă. Puteți utiliza ssh cu opțiunea -tt. pentru al forța să aloce tty (sau -t de două ori).

Valoarea implicită a opțiunii requiretty vă permite doar să executați sudo pentru utilizatori dacă au un tty.

Afișați privilegiile utilizatorilor

Puteți afla ce privilegii are un anumit utilizator cu următoarea comandă:

Sau aflați-vă propriile privilegii prin echipă:

Suprapunere umask

Sudo aplică propriul său utilizator umask (care este setat la 0022 în mod implicit). Acest lucru împiedică sudo să creeze fișiere cu drepturi de acces mai liberale decât permite umask utilizatorului. Deși aceasta este o valoare implicită rezonabilă, dacă nu utilizați umask modificat, aceasta poate duce la o situație în care un program care rulează prin sudo poate crea fișiere cu drepturi de acces diferite de cele create atunci când programul este rulat direct de către superuser. Pentru a corecta astfel de erori, sudo oferă posibilitatea de a repara umask, chiar dacă umask-ul dorit este mai liberal decât cel stabilit în umask-ul utilizatorului. Prin adăugarea unor astfel de linii (utilizați visudo) schimbați comportamentul sudo implicit:

Acest lucru va instala sudo umask în umask implicit (0022) și va suprascrie comportamentul implicit, folosind întotdeauna umask specificat și indiferent de umask-ul utilizatorului.

Opțiuni prestabilite

Vedeți [1] pentru o listă de opțiuni (extrasă din versiunea sursă 1.8.7) prezentată într-un format optimizat pentru sudori.







Articole similare

Trimiteți-le prietenilor: