logo

Linux sudo

Introducere

Comanda Linux sudo reprezintă Super User Do . În general, se aplică ca prefix al câtorva comenzi pe care superutilizatorul are voie să le execute.

Dacă prefixăm comanda împreună cu alte comenzi, aceasta ar executa comanda cu privilegii mari. Cu alte cuvinte, va permite utilizatorului, împreună cu autorizarea corespunzătoare, să consume o comandă ca și alți utilizatori ca superutilizatorul.

Este egal cu opțiunea 'rulat ca administrator' în Windows. Opțiunea sudo ne permite să avem mai mulți administratori. Utilizatorii care pot aplica comanda sudo au nevoie să aibă intrarea în fișierul sudoers poziționat la '/etc/sudoers/' .

Notă: Pentru a vizualiza sau edita fișierul, trebuie să aplicăm comanda sudo. Pentru editarea fișierului, se recomandă să aplicați comanda „visudo”.

Comanda sudo în mod implicit necesită ca utilizatorii să se verifice împreună cu o parolă care este parola utilizatorului, nu o parolă root în sine.

Sintaxa comenzii sudo

Sintaxa comenzii sudo este menționată mai jos:

 sudo OPTION... COMMAND 

Opțiune în comanda sudo

Unele dintre opțiunile importante din comanda sudo sunt explicate mai jos:

1. -În: Inseamna versiune . Această opțiune activează comanda sudo pentru tipărirea numărului versiunii și ieșire. Opțiunea -V ar tipări valorile implicite ale listei sudo, care a fost observată dacă utilizatorul solicitant este deja root.

Linux sudo

2. -l: Inseamna listă . Această opțiune va ajuta la tipărirea diferitelor comenzi permise utilizatorului pe gazda curentă.

Arată că utilizatorul actual ar putea aplica fiecare comandă ca sudo.

bolding în css
Linux sudo

3. -h sau -ajutor: H înseamnă Ajutor în această opțiune. Această opțiune activează comanda sudo pentru imprimarea unui mesaj de utilizare și ieșire.

Linux sudo

4. -in: Inseamna valida . Dacă comanda sudo ar actualiza marca temporală a utilizatorului, validarea va solicita parola utilizatorului, dacă este necesar. Prelungește timpul de expirare a comenzii sudo pentru celelalte 5 minute, dar nu execută o comandă. Nu oferă niciun rezultat.

5. -k: Inseamna ucide . Această opțiune invalidează marcajul de timp al utilizatorului la sudo. Prin urmare, data viitoare când comanda sudo este executată, va fi necesară o parolă. Opțiunea -k nu are nevoie de nicio parolă și a fost inclusă pentru a permite utilizatorilor să revoce permisiunile comenzii sudo prin intermediul .deconectare fişier.

6. -b: Inseamna fundal . Această opțiune informează comanda sudo să execute comenzile furnizate în fundal.

Notă: Dacă aplicăm această opțiune, nu putem aplica controlul jobului shell pentru manipularea procesului.

Linux sudo

7. -K: Această opțiune este aceeași cu opțiunea -k. Cu toate acestea, reprezintă sigur ucide . Această opțiune este aplicată pentru eliminarea completă a marcajului de timp al utilizatorului. De asemenea, nu are nevoie de nicio parolă.

8. -p: Inseamna prompt . Această opțiune ne permite să înlocuim solicitarea de parolă (implicit) și să aplicăm una personalizată. Sunt permise câteva procente de evadare, care sunt după cum urmează:

  • %u este dezvoltat la numele de conectare al utilizatorului care invocă.
  • %U este dezvoltat la numele de conectare al utilizatorului
  • %h este dezvoltat la numele de gazdă (local) fără nici un nume al domeniului.
  • %H este dezvoltat la numele de gazdă (local) cu numele domeniului (doar atunci când numele de gazdă al mașinii este complet calificat)
  • %% (două caractere consecutive) poate fi împărțit într-un caracter % individual.
Linux sudo

9. -n: Această opțiune va rula comanda fără a cere parola. Este foarte util dacă dorim să executăm câteva comenzi ca sarcini de fundal (sau în interiorul scriptului shell), unde nu dorim comanda sudo pentru a întreba despre parolă. Această opțiune este prescurtarea pentru non-interactiv.

salut lumea java

10. -in: Inseamna utilizator . Această opțiune permite comenzii sudo să execute comenzile descrise, altele decât rădăcină, ca utilizator. Pentru precizarea unui uid mai degrabă decât numele de utilizator, putem folosi #uid .

11. -H: Inseamna ACASĂ . Această opțiune poate seta a variabilă de mediu HOME la noi directorul principal al utilizatorului root așa cum este descris în fișierul passwd. Comanda sudo implicit nu schimbă HOME.

12. -s: Acesta reprezintă coajă . Această opțiune execută shell-ul descris prin a variabila de mediu SHELL atunci când este setul sau acest shell așa cum este descris în interiorul passwd fişier.

13. -S: Inseamna stdin . Această opțiune activează comanda sudo pentru citirea parolei prin intrarea standard, mai degrabă decât prin dispozitivul terminal.

14. -: Această opțiune ilustrează faptul că comanda sudo trebuie să oprească procesarea argumentelor liniei de comandă. Este cel mai util în combinație cu un steag -s.

15. -a: Inseamna tip de autentificare . Această opțiune activează comanda sudo pentru utilizarea tipului de autentificare descris dacă se validează un utilizator, așa cum este permis de /etc/login/.config .

Administratorul sistemului ar putea descrie lista de metode de autentificare specifică sudo prin includerea 'auto-sudo' intrarea în interiorul /etc/login/.config .

Linux sudo

Variabile de mediu în comanda sudo

Următoarele sunt câteva dintre variabilele de mediu care sunt aplicate de comanda sudo:

Da nu. Etichetă Descriere
1. EDITOR Este un editor implicit care poate fi folosit în modul -e (sudoedit) când VISUAL nu este remediat.
2. ACASĂ Se va seta la homedir-ul utilizatorului (țintă) în modul -H sau -s (sau când comanda sudo a fost formată cu opțiunea, adică -enable-shell-sets-home).
3. CALE Se setează la valoarea corectă atunci când opțiunea, adică secure_path sudoers este fixată.
4. COAJĂ Poate fi folosit pentru a determina shell-ul de executat cu opțiunea -s.
5. SUDO_COMMAND Se setează la o comandă executată de comanda sudo.
6. SUDO_PROMPT Poate fi folosit ca promptare a parolei (implicit).
7. SUDO_USER Setează datele de conectare ale utilizatorului care solicită comanda sudo.
8. SUDO_UID Se setează la uid-ul utilizatorului care solicită comanda sudo.
9. SUDO_GID Setează ghidul utilizatorului care solicită comanda sudo.
10. SOUTH_PS1 PS1 ar fi fixat la valoarea sa dacă este setat.
unsprezece. UTILIZATOR Se setează la utilizator (rădăcină, dacă nu este descrisă opțiunea, adică -u).
12. VIZUAL Este un editor implicit și se utilizează în modul -e (sudoedit).

Istoricul comenzii sudo

Cliff Spencer și Robert Coggeshall au scris actualul subsistem în 1980 la SUNY/Buffalo la Departamentul de Informatică. Robert Coggeshall a purtat cu el sudo la Universitatea din Colorado Boulder. În mod substanțial, caracteristicile și codul au fost schimbate de membrii IT ai Colegiului de Inginerie și ai Departamentului de Informatică și științe aplicate de la Universitatea din Colorado Boulder cu Todd C. Miller între 1986-1993.

Public, cea mai recentă versiune a fost gestionată din 1994 de Todd .C Miller (dezvoltator OpenBSD) și a fost distribuită din 1999 pe licență în stil ISC.

program matrice bidimensională în c

Thomas Claburn a caracterizat astfel de incertitudini ca fiind exagerate în noiembrie 2009, ca răspuns la faptul că Microsoft avea privilegii sudo. În mod restrâns, revendicările au fost încadrate într-o anumită GUI în loc de abordarea sudo.

Designul comenzii sudo

Utilizatorii își pot furniza parola pentru sudo atunci când este necesar în locul unui superutilizator, spre deosebire de comanda su. Permite utilizatorilor accesibili să-și exercite privilegiile calificate fără a păstra secretul parolei celuilalt cont.

greierul meu
  • Când fișierul de configurare permite accesul utilizatorului, după autentificare sistemul solicită comanda revendicată.
  • Comanda sudo a păstrat drepturile de invocare ale utilizatorului cu un timp de grație (de obicei 5 minute) per pseudo-terminal și îi permite utilizatorului să execute diverse comenzi succesive ca utilizator revendicat fără a fi nevoie să dea din nou vreo parolă.
  • Comanda sudo poate fi configurată pentru înregistrarea fiecărei comenzi executate ca o funcție de auditare și securitate.
  • În acel moment, un utilizator trage pentru invocarea comenzii sudo fără a fi listat în fișierul de configurare, o ilustrație de excepție este prezentată utilizatorului care spune că fotografia a fost înregistrată.
  • O intrare ar fi salvată în sistem și utilizatorul root va fi informat prin e-mail.

Configurarea comenzii sudo

The /etc/sudoers fișierul include grupurile de utilizatori sau lista de utilizatori cu permisiunea de a rula un set de comenzi în timp ce conțin drepturile unui utilizator root sau alt utilizator listat. Programul poate fi configurat pentru a avea nevoie de o parolă.

Impactul comenzii sudo

În câteva distribuții de sistem, comanda sudo a înlocuit utilizarea (implicit) a unui login diferit al superutilizatorului pentru diferite operațiuni administrative, cel mai important în câteva distribuții Apple macOS și Linux.

Previne câteva exploit-uri și, de asemenea, permite o înregistrare mai protejată a comenzilor de administrare.

RBAC

Comanda sudo ar putea fi utilizată pentru tranzitul între diferite tipuri de roluri în cadrul controlului de acces bazat pe roluri în colaborare cu SELinux.

Programe și instrumente similare

Visudo este un utilitar al liniei de comandă care permite editarea fișierului de configurare al sudo într-un mod sigur. Efectuează verificări de sintaxă și sens și, de asemenea, previne mai multe editări simultane împreună cu blocările.

Programul runas facilitează aceeași performanță în Microsoft Windows; cu toate acestea, nu poate transmite linii de comandă lungi curente unui copil, variabilelor de mediu sau directoarelor.

Nu acceptă elevația generală, în timp ce ajută la executarea copilului ca orice alt utilizator. Pentru Windows, un sudo și un sudo adevărat care pot transfera fiecare dintre aceste detalii de stare și pot începe copilul ca alt utilizator sau elevat sunt adăugate cu Carcasă Hamilton C .

GUI este disponibil pentru sudo ( gksudo în special), dar este depreciat în Debian și, de asemenea, nu mai este în Ubuntu. Diverse alte tipuri de interfețe de utilizator nu sunt proiectate direct pe sudo, dar facilitează aceeași creștere a privilegiilor (temporare) pentru scopuri administrative, cum ar fi Servicii de autorizare pentru Mac OS X, Control cont utilizator în Microsoft Windows , și pkexec în cadrul sistemelor de operare asemănătoare Unix .

De la versiunea 5.8 a OpenBSD (octombrie 2015), Donează este disponibil. A fost specificat să înlocuiască comanda sudo în sistemul de bază al OpenBSD.

lui vs. sudo

Dacă suntem obișnuiți cu o configurare Linux mai clasică, atunci suntem obișnuiți să aplicăm comanda su pentru obținerea privilegiilor de root. Putem lansa comanda su și pentru a ne conecta efectiv ca rădăcină (casa rădăcină devine casa noastră).

Folosind aceste tipuri de distribuții, ne putem autentifica și ca utilizator de rută. Dar, nu este o idee bună să vă autentificați ca utilizator root. Dacă aplicăm o distribuție care depinde de comanda su și permite autentificarea utilizatorului root, atunci conectează-te ca utilizator standard și comanda su către utilizatorul root.

Cel mai probabil, vom observa că nu ne putem autentifica ca utilizator root folosind distribuții bazate pe sudo. De fapt, în unele distribuții precum Ubuntu, contul utilizatorului root a fost dezactivat.

Nu ne putem autentifica ca utilizator root și folosi comanda su pentru a deveni utilizator root. Am putea face este să lansăm aceste comenzi folosind comanda sudo pentru a obține privilegii administrative.

Utilizarea comenzii sudo

Există două moduri diferite de a executa aplicații administrative cu Linux. Fie putem schimba superutilizatorul sau utilizatorul root folosind comanda su, fie putem beneficia de comanda sudo.

comenzi linux care

Când ne folosim timpul pe terminal, sudo este una dintre comenzile importante pe care le vom folosi destul de frecvent. Folosind comanda sudo mai degrabă decât autentificarea, deoarece utilizatorul root este mai protejat, deoarece putem acorda doar câteva privilegii administrative unui singur utilizator fără să cunoască parola root.

Modul în care îl implementăm depinde de distribuția pe care o folosim. Câteva distribuții permit utilizatorului root (cum ar fi OpenSUSE, Red Hat , sau Fedora ), în timp ce câțiva nu (le place Debian și Ubuntu ).

Utilizarea comenzii sudo este simplă în forma sa de bază. De exemplu, trebuie să executăm dpkg pentru instalarea unei piese software. Dacă pur și simplu rulăm dpkg -i software.deb comanda ca utilizator standard vom primi un mesaj de eroare că utilizatorul nu are permisiunea de a rula comanda.

De aceea, în mod implicit, utilizatorii standard nu pot instala diverse aplicații pe o mașină Linux. Dacă vrem să instalăm orice aplicație pe mașina Linux, trebuie să avem privilegiile unui superutilizator.

În schimb, vom rula sudo dpkg -i software.deb comandă astfel încât să putem executa instalarea cu succes.

Instalarea comenzii sudo

Pachetul de comandă sudo este preinstalat peste majoritatea distribuțiilor Linux. Pentru a confirma că pachetul este instalat pe sistemul nostru, trebuie să urmați pașii de mai jos:

  • În primul rând, deschideți terminalul nostru.
  • Tastați sudo și faceți clic pe butonul Enter.
  • Dacă avem pachetul sudo instalat pe sistemul nostru, acesta va afișa un mesaj scurt.
  • În caz contrar, vom anunța printr-un mesaj, adică comanda sudo nu a fost găsită.
  • Dacă pachetul nu este instalat, putem instala acest pachet cu ușurință aplicând managerul de pachete de supradistribuție.

Instalați Sudo pe Fedora și CentOS

 $ yum install sudo 

Instalați Sudo pe Debian și Ubuntu

 $ apt install sudo 

Linux sudo

Comandă pentru actualizarea sudo

Linux sudo