Linux: Care este corect de utilizat: su sau sudo? Utilizarea sudo în Ubuntu pentru începători Unde este folosit sudo

Uneori, trebuie doar să rulați o comandă de la alt utilizator. Și există mai multe moduri în care se poate face acest lucru. Voi vorbi despre ele în articolul meu „Rulează o comandă ca alt utilizator în Unix/Linux”.

Rulați o comandă ca alt utilizator în Unix/Linux - metoda 1

Și astfel, puteți utiliza utilitarul SUDO. Să ne uităm la un exemplu:

$ sudo -H -u Your_nother_user -c "ping site"

Explicatii:

  • -H YOUR_HOME: Setează HOME (variabilă de mediu pentru casa unui anumit utilizator) și implicit este root.
  • -u YOUR_USER: Specificați utilizatorul de la care va fi executată comanda.
  • -c YOUR_COMMAND: Servește ca opțiune pentru a introduce o comandă.

Ceva de genul.

Rulați o comandă ca alt utilizator în Unix/Linux - metoda 2

Puteți utiliza utilitarul SU. Și acum voi da câteva exemple.

Conectați-vă ca utilizator root

Pentru a obține root, rulați:

$su - rădăcină

Rulați comanda ca utilizator root

Iată un exemplu de comandă:

# su - root -c „COMANDA_TAUA_AICI”

Su - -c „YOUR_COMMAND_HERE arg1”

Executați o comandă de la alt utilizator folosind su

Deci, iată un exemplu:

# su -c "/opt/solr/bin/solr create -c test_solr_core -n solrconfig.xml" -s /bin/sh solr S-a creat un nou nucleu "test_solr_core"

Să ne uităm la un alt exemplu:

$ su another_user -c "site ping"

$su -YOUR_USER -c „YOUR_COMMAND_HERE”

  • — — Va simula autentificarea utilizatorului specificat.
  • -c - Folosit pentru a specifica comanda de executat (pentru utilizatorul specificat).

Ceva de genul.

Rulați o comandă ca alt utilizator în Unix/Linux - metoda 3

Și astfel, puteți utiliza utilitarul runuser. Comanda runuser pornește un shell cu ID-uri de utilizator și grup de înlocuire. Această comandă este utilă numai atunci când sunteți conectat ca root. Sintaxa este următoarea:

# runuser -l YOUR_USER -c „YOUR_COMMAND_HERE”

Ca exemplu, voi arăta următoarea linie:

# runuser -l nginx -c "serviciu nginx start"

PS: Comanda runuser nu necesită o parolă și ar trebui să fie rulată doar de utilizatorul root.

Opțiuni principale:

  • -l: Creați un shell de conectare folosind fișierul PAM runuser-l în loc de cel implicit.
  • -g: Indică grupul principal.
  • -G: Indică un grup suplimentar.
  • -c: De fapt, este folosit pentru a specifica o comandă.
  • –session-command=COMMAND: Transmite o singură comandă la shell cu opțiunea „-c” și nu creează o nouă sesiune.
  • -m: Nu resetați variabilele de mediu (ENV).

Gata, subiectul „Rulează o comandă ca alt utilizator în Unix/Linux” este complet.

Comanda sudo este foarte importantă pentru gestionarea drepturilor de acces în sistemul de operare Linux. Datorită acestei mici comenzi, puteți acorda permisiuni pentru a efectua anumite acțiuni în numele administratorului altor utilizatori, fără a le oferi însăși parola de superutilizator. De asemenea, nu trebuie să fiți întotdeauna sub un cont de superutilizator pentru a efectua ocazional acțiuni administrative.

S-ar părea că o echipă atât de mică, cu un minim de capabilități și o utilizare cât mai simplă, dar de fapt poate face mult mai mult. În acest articol ne vom uita la modul în care sudo este configurat în Linux pentru a controla accesul la funcțiile sistemului și la capacitățile utilizatorului.

Înainte de a trece la configurarea accesului la utilitarul sudo, să vedem cum funcționează. Există două moduri de a obține drepturi de administrator în Linux. Puteți trece la utilizatorul root folosind comanda su sau puteți transmite comanda dorită ca parametru utilitarului sudo, care o va executa cu drepturi de administrator. Mai mult, a doua metodă este de preferat, deoarece nu vei uita ce folosești și nu vei face nimic inutil.

Numele echipei înseamnă utilizatorul înlocuitor face sau super utilizator nu. Utilitarul vă permite să rulați programe ca alt utilizator, dar cel mai adesea ca utilizator root. Utilitarul a fost dezvoltat în 1980 de Bob Cogshell și Cliff Spencer. În acest timp, mulți dezvoltatori s-au schimbat și au fost adăugate multe caracteristici.

sudo funcționează datorită indicatorului de acces SUID. Dacă acest flag este setat pentru un program, atunci este executat nu în numele utilizatorului care l-a lansat, ci în numele proprietarului, având în vedere că fișierul este deținut de sudo, atunci utilitarul este executat ca root. Apoi își citește setările, solicită parola utilizatorului și decide dacă utilizatorului i se poate permite să execute comenzi ca administrator. Dacă da, atunci comanda transmisă în parametru este executată.

Acum că cunoașteți teoria, să vedem cum să configurați sudo pe Linux.

Configurarea sudo pe Linux

Toate setările sudo sunt localizate în fișierul /etc/sudores. Aici puteți configura o mulțime de parametri, începând de la cine va avea voie să execute comenzi în numele superutilizatorului și terminând cu limitarea setului de comenzi disponibile.

Pentru a deschide un fișier pentru editare, tastați următoarea comandă ca superutilizator:

De asemenea, puteți specifica editorul de text în care doriți să editați fișierul de configurare:

EDITOR=nano visudo

În continuare ne vom uita la cele mai interesante setări pe care le puteți seta în acest fișier. Dar mai întâi, să ne uităm la sintaxa de bază a fișierului. Este format din două tipuri de șiruri, acestea sunt aliasuri care vă permit să creați liste de utilizatori și steaguri, precum și regulile în sine, care specifică modul în care se va comporta comanda sudo. Sintaxa aliasului arată astfel:

tip alias_name = element1, element2, element3

Tipul specifică ce tip de Alice trebuie creat, numele este numele care va fi folosit, iar lista de elemente specifică elementele care vor fi implicate atunci când se face referire la acest nume.

Descrierea permisiunilor utilizatorului are o sintaxă ușor diferită:

gazdă utilizator = (altul_utilizator:grup) echipe

Utilizatorul specifică utilizatorul sau grupul pentru care creăm regula, gazda este computerul pentru care se va aplica această regulă. Un alt utilizator - sub pretextul cărui utilizator primul poate executa comenzi, iar ultimul poate executa comenzi permise. Un alias poate fi folosit în locul oricăruia dintre parametri. Și acum configurați sudo în Debian și alte distribuții.

Setări principale

Aliasul implicite vă permite să setați parametri standard pentru funcționarea utilitarului, pe care îi vom lua în considerare în această secțiune. Un astfel de alias începe cu cuvântul Defaults, urmat de numele steagului. Dacă există un simbol în fața numelui, înseamnă că steagul trebuie pornit;

Dezactivează introducerea prima dată când o folosești:

Defaults!lecture

Superutilizatorul nu poate face sudo:

Valori implicite !root_sudo

Acum, dacă încercați să rulați sudo sudo, nimic nu va funcționa:

Schimbați directorul de acasă pentru utilizatorul țintă, lăsând folderul utilizatorului curent ca director de acasă în mod implicit:

Setări implicite set_home

Salvați lista de grupuri ale utilizatorului curent:

Valori implicite !preserve_groups

Solicitați parola de superutilizator în loc de parola de utilizator:

Setați numărul de încercări de parolă înainte de a se închide sudo, implicit este 3:

Valori implicite passwd_tries=5

Numărul de minute care vor trece înainte ca sudo să ceară din nou o parolă este de 5 în mod implicit. Dacă setați valoarea la 0, va cere întotdeauna o parolă, indiferent de cât timp ați folosit utilitarul:

Valori implicite timestamp_timeout=10

Următorul parametru specifică numărul de minute în care sudo va aștepta ca o parolă să fie reintrodusă dacă este introdusă incorect:

Valori implicite passwd_timeout=10

Puteți schimba mesajul care este afișat atunci când vi se solicită o parolă:

Defaults passprompt="Parola dvs.:"

Puteți specifica un alt utilizator, nu root, de la care vor fi executate toate comenzile, pentru această utilizare:

Valori implicite runas_default="user"

Puteți înregistra toate încercările de conectare la sudo:

Valori implicite logfile=/var/log/sudo

Apoi încercăm să verificăm funcționarea jurnalului:

sudo cat /var/log/sudo

Acestea au fost toate cele mai interesante setări sudo de care ați putea avea nevoie, în continuare ne vom uita la cum să setați drepturile de acces sudo pentru utilizatori.

Configurarea utilizatorilor sudo

Am discutat deja mai sus despre sintaxa pentru configurarea acțiunilor pentru utilizatori aici totul este mai complicat decât cu aliasuri, dar vă puteți da seama. De exemplu, să permitem oricărui utilizator să folosească sudo, de la orice gazdă și să execute orice comandă:

ALL ALL = (TOȚI) TOȚI

O astfel de echipă este foarte nesigură, permite tuturor și totul. Primul ALL este să permită toți utilizatorii, al doilea ALL este pentru toate gazdele, al treilea ALL este să permită autentificarea ca orice utilizator, iar al patrulea este să permită executarea oricărei comenzi. Dar o altă construcție este folosită mult mai des:

%wheel ALL = (ALL) ALL

Înseamnă la fel ca și precedentul, doar că aici nu permitem tuturor utilizatorilor să folosească sudo, ci doar celor care sunt membri ai grupului de roți.

%wheel ALL = (rădăcină) ALL

Aici am limitat deja posibila alegere a utilizatorilor doar la utilizatorul root. De asemenea, puteți specifica grupul de utilizatori în numele căruia acesta poate executa comenzi:

%wheel ALL = (rădăcină:admins) ALL

Aceasta înseamnă că puteți rula comanda ca root sau alt utilizator din grupul de admins. De asemenea, putem specifica comenzi pe care utilizatorul le poate executa. De exemplu:

%wheel ALL = (rădăcină) /bin/mount, /bin/umount

Utilizatorul poate rula comenzile mount și unmount doar ca superutilizator. Acum să facem și mai interesant, utilizatorul poate executa mount și umount fără parolă și toate celelalte comenzi cu parolă:

%wheel ALL = (rădăcină) ALL
%wheel ALL = (rădăcină) NOPASSWD: /bin/mount, /bin/umount

De asemenea, puteți restricționa utilizatorii după gazdă, de exemplu, permitem utilizarea sudo numai de la host1:

%wheel host1 = (rădăcină) TOATE

Rămâne de luat în considerare modul de utilizare a aliasurilor. Aliasurile pot fi de următoarele tipuri:

  • User_Alias- alias de utilizatori care vor folosi sudo;
  • Runas_Alias- alias de utilizatori în numele cărora vor fi executate comenzi;
  • Host_Alias- alias gazdă;
  • Cmnd_Alias- alias de comandă;

De exemplu, să creăm patru alias-uri și să le folosim în regula noastră:

User_Alias ​​​​Utilizatori = utilizator1, utilizator2, utilizator3
Runas_Alias ​​​​Admins = root,admin
Host_Alias ​​​​Gazde = gazdă1,gazdă2
Cmd_Alias ​​​​Cmds = /bin/mount,/bin/umount

Gazde utilizatori = (Admins) Cmds

Aceasta înseamnă că utilizatorii din lista de utilizatori vor putea executa comenzi Cmds în numele utilizatorilor Amdins pe gazdele Hosts.

Mai sunt câteva cuvinte de spus despre steaguri. Indicatorul NOPASSWD vă spune să nu solicitați o parolă atunci când executați această regulă. De exemplu, pentru a permite tuturor utilizatorilor să ruleze comanda mount cu sudo fără o parolă:

ALL ALL = (rădăcină) NOPASSWD: /bin/mount

De asemenea, puteți împiedica executarea acestei comenzi speciale folosind steag-ul NOEXEC:

ALL ALL = (rădăcină) NOEXEC /bin/mount

Puteți verifica dacă fișierul /etc/sudores a fost configurat corect și puteți vedea toate regulile create folosind comanda:

Toate steaguri și setări instalate sunt afișate aici, precum și permisiunile acestui utilizator.

concluzii

În acest articol, ne-am uitat la cum să configurați sudo în Linux. După cum puteți vedea, în ciuda faptului că acesta este un utilitar foarte simplu, ascunde o mulțime de setări utile pe care le puteți utiliza pe sistemul dvs. Dacă aveți întrebări, întrebați în comentarii!

Sudo este un program care permite administratorilor să acorde utilizatorilor drepturi root limitate și să păstreze un jurnal al activității root. Filosofia de bază este de a acorda cât mai puține drepturi posibil, permițând totuși oamenilor să-și îndeplinească sarcinile în mod normal. Diferența față de comanda su este că utilizatorul introduce parola contului, mai degrabă decât parola utilizatorului root.

Sudo pe Debian are un timeout de cincisprezece minute (poate) după introducerea parolei. Aceasta înseamnă că atunci când introduceți prima dată parola de root, aveți la dispoziție 15 minute timp în care puteți executa următoarea comandă fără a introduce parola. Timeout-ul poate fi resetat imediat folosind comanda sudo -k.

Instalarea sudo pe Debian 7

aptitude install sudo

Un fișier de configurare este creat în timpul instalării /etc/sudoersși director /etc/sudoers.d, despre care vom vorbi puțin mai târziu.

opțiuni de comandă sudo

-k- vă permite să resetați timpul de expirare până când trebuie să introduceți din nou parola. Dacă specificați o comandă care poate necesita o parolă, timeout-ul va fi resetat special pentru acea comandă.
-h- va fi afișat un mic indiciu pe ieșirea standard.
-V- va fi afișată versiunea sudo și a pluginurilor. Dacă rulați ca root, vor fi afișate toate setările.
-g grup - vă permite să specificați din ce grup va fi lansată comanda.
-H- specifică directorul care va fi specificat în variabila de mediu HOME.
-i- simulează intrarea inițială. Dacă comanda nu este specificată, vă va conecta, astfel încât să puteți deveni root în loc să utilizați sudo su.
-ll]- dacă comanda nu este specificată, atunci va fi afișată o listă de comenzi disponibile pentru utilizatorul apelant (sau utilizatorul specificat cu parametrul -U). Dacă o comandă este specificată și este disponibilă, va fi afișată calea completă către comandă și parametrii disponibili. Dacă comanda nu este disponibilă, sudo va ieși cu starea 1. Dacă utilizați opțiunea -ll sau specificați -l de două ori, va fi folosit un format de ieșire mai detaliat.
-s- va fi lansat shell-ul specificat în variabila de mediu SHELL. Dacă este specificată o comandă, aceasta va fi transmisă shell-ului care rulează pentru execuție.
-U utilizator- împreună cu parametrul -l, vă permite să afișați privilegiile unui anumit utilizator. În mod implicit, root și utilizatorii cu toate privilegiile (ALL) au acces la listele de privilegii.
-u utilizator- comanda specificată va fi rulată ca utilizator specificat, nu ca root.
-v- vă permite să extindeți timpul de expirare cu 15 minute sau orice este specificat în sudoers), dar nu executați nicio comandă.

Cele mai multe dintre opțiunile disponibile sunt enumerate aici, dar nu toate. Pentru a vedea lista completă, utilizați comanda man sudo.

Configurarea sudo pe Debian 7

Se recomandă să setați toate setările utilizatorului în fișierele din director /etc/sudoers.d, nu în fișierul principal /etc/sudoers. Adică, puteți crea un fișier cu orice nume din director /etc/sudoers.dși listează deja setările necesare în el.

Fişier /etc/sudoers se recomandă editarea utilizând utilitarul visudo, deoarece blochează fișierul și verifică corectitudinea directivelor la închidere. visudo folosește un editor de text implicit, care poate fi suprascris în sudoeri directivă ca:

În orice sistem Linux există întotdeauna un utilizator privilegiat - root. Acest utilizator are dreptul de a efectua orice acțiuni, de a șterge orice fișier și de a modifica orice setări. Este aproape imposibil să limitezi cumva libertatea de acțiune a rădăcinii. Pe de altă parte, toți ceilalți utilizatori ai sistemului, de obicei, nu au majoritatea drepturilor necesare, cum ar fi dreptul de a instala programe, deoarece aceasta este o operațiune administrativă la care numai root are drepturi. O altă operațiune comună, accesibilă doar superutilizatorului, este copierea și modificarea fișierelor din folderele de sistem unde un utilizator obișnuit nu are acces.

Anterior, această problemă a fost rezolvată destul de simplu: dacă aveai parola de root, puteai să te autentifici în sistem sub contul său sau să-i obții temporar drepturile folosind comanda su. Apoi efectuați toate operațiunile necesare și reveniți la utilizatorul normal. În principiu, această schemă funcționează bine, dar are multe dezavantaje semnificative, în special, este imposibil în niciun fel (mai precis, este foarte dificil) să se limiteze privilegiile administrative doar la o anumită gamă de sarcini.

Prin urmare, în distribuțiile Linux moderne, în loc de contul root, utilitarul sudo este folosit pentru administrare.

În Ubuntu, în mod implicit, contul root este complet dezactivat, adică. Nu poți deveni root fără a-l activa. root este dezactivat, adică este prezent în sistem, pur și simplu nu vă puteți conecta la el. Dacă doriți să returnați capacitatea de a utiliza root, consultați paragraful de mai jos despre activarea contului root.

Ce este sudo

sudo este un utilitar care acordă privilegii root pentru a efectua operațiuni administrative conform setărilor sale. Vă permite să controlați cu ușurință accesul la aplicațiile importante din sistem. În mod implicit, la instalarea Ubuntu, primului utilizator (cel creat în timpul instalării) i se acordă drepturi depline să folosească sudo. Acestea. de fapt, primul utilizator are aceeași libertate de acțiune ca și root. Cu toate acestea, acest comportament al sudo este ușor de schimbat, vezi mai jos în paragraful despre configurarea sudo.

Unde se folosește sudo?

sudo este folosit ori de câte ori rulați ceva din meniul Administrare sistem. De exemplu, când lansați Synaptic vi se va cere să introduceți parola. Synaptic este un program de gestionare a software-ului instalat, așa că pentru a-l rula aveți nevoie de drepturi de administrator, pe care le obțineți prin sudo introducând parola.

Cu toate acestea, nu toate programele care necesită privilegii administrative rulează automat prin sudo. De obicei, trebuie să lansați manual programe cu drepturi de administrator.

Rularea de programe grafice cu drepturi de administrator

Pentru a lansa programe grafice cu drepturi de administrator, puteți utiliza dialogul de lansare a programului, care este apelat implicit cu comanda rapidă de la tastatură Alt + F2.

Să presupunem că trebuie să lansăm managerul de fișiere Nautilus cu drepturi de administrator pentru a schimba cumva conținutul folderelor de sistem prin interfața grafică. Pentru a face acest lucru, introduceți comanda în dialogul de lansare a aplicației

Gksudo nautilus

gksudo poate fi înlocuit cu gksu, iar utilizatorii KDE ar trebui să scrie și kdesu în loc de gksudo. Vi se va cere să introduceți parola, iar dacă aveți drepturile necesare, Nautilus va începe ca administrator. Puteți lansa orice software grafic cu drepturi de administrator scriind pur și simplu în dialogul de lansare

Gksudo<имя_команды>

Fiți extrem de atenți când lucrați în aplicații care rulează cu drepturi de administrator. Puteți efectua orice operațiune fără avertismente din partea sistemului, în special, ștergeți fișierele de sistem, făcând astfel sistemul inoperabil.

Rularea programelor cu drepturi de administrator în terminal

Pentru a rula o comandă într-un terminal cu drepturi de administrator, pur și simplu tastați sudo în fața acesteia:

Sudo<команда>

Vi se va cere să introduceți parola. Aveți grijă când introduceți parola în nici un caz nu este afișat, acest lucru este normal și se face din motive de securitate, trebuie doar să tastați până la sfârșit și să apăsați Enter. După introducerea parolei, comanda specificată va fi executată ca root.

Sistemul își amintește parola introdusă pentru o perioadă de timp (menține deschisă sesiunea sudo). Prin urmare, este posibil ca execuțiile ulterioare ale sudo să nu necesite introducerea unei parole. Pentru a garanta terminarea sesiunii sudo, tastați în terminal

În plus, erorile legate de canale în Linux sunt frecvente. La executarea unei comenzi

Sudo cat test.txt | grep text > result.txt

cu drepturi root numai cat se va executa, deci fișierul rezultat.txt este posibil să nu se înregistreze. Trebuie fie să scrieți sudo înainte de fiecare comandă, fie să treceți temporar la superutilizator.

Obținerea drepturilor de superutilizator pentru a rula mai multe comenzi

Uneori devine necesar să rulați mai multe comenzi la rând cu drepturi de administrator. În acest caz, puteți deveni temporar un superutilizator folosind una dintre următoarele comenzi:

Sudo -s sudo -i

Acest lucru vă va pune în modul superutilizator (cu restricții impuse prin setările sudo), așa cum este indicat de simbolul # la sfârșitul promptului liniei de comandă. Aceste comenzi sunt similare în acțiune cu su , totuși: - sudo -s- nu schimbă directorul principal în /root, directorul principal al utilizatorului care apelează rămâne acasă sudo -s, ceea ce este de obicei foarte convenabil. - sudo -i- va schimba, de asemenea, directorul principal în /root.

Pentru a reveni la modul utilizator normal, tastați exit sau apăsați pur și simplu Ctrl + D.

Folosind un cont root tradițional și comanda su

Deblocarea contului root duce la riscuri inutile (lucrând constant sub root, aveți 100.500 de moduri de a vă „împușca în picior”) și, de asemenea, facilitează accesul unui atacator la computer.

Ubuntu 11.04 și versiuni anterioare

Pentru a vă conecta ca root, trebuie doar să-i dați o parolă:

Sudo passwd root

Apoi, pe ecranul de conectare, faceți clic pe Altele... și introduceți numele de utilizator (rădăcină) și parola pe care le-ați setat.

Ubuntu 11.10 și mai vechi

Începând cu versiunea 11.10, a fost instalat managerul de conectare lightdm, iar autentificarea ca root este puțin mai complicată.

1. Setați parola root. Intra in terminal:

Sudo passwd root

2. Activați elementul „Introduceți autentificarea”. Intra in terminal:

Gksu gedit /etc/lightdm/lightdm.conf

La sfârșitul fișierului adăugați:

Greeter-show-manual-login=adevărat

3. Reporniți lightdm. Intra in terminal:

Reporniți serviciul Sudo lightdm

Asta este, elementul „Autentificare” va apărea pe ecranul de conectare. În câmpul de autentificare introducem „rădăcină”, în câmpul parolă - parola pe care am stabilit-o în prima etapă.

Pentru a inversa blocarea contului rădăcină, va trebui să derulați înapoi modificările din setările lightdm și, de asemenea, să blocați contul rădăcină cu comanda din terminal:

Sudo passwd -l root

Configurarea sudo și a permisiunilor pentru a rula diverse comenzi

sudo vă permite să permiteți sau să dezactivați utilizatorilor să ruleze un anumit set de programe. Toate setările legate de drepturile de acces sunt stocate într-un fișier /etc/sudoers. Acesta nu este un fișier obișnuit. Pentru a-l edita necesar(din motive de securitate) utilizați comanda

Sudo visudo

În mod implicit, scrie că toți membrii grupului admin au acces complet la sudo, așa cum este indicat de linie

%admin ALL=(ALL) ALL

Puteți citi mai multe despre sintaxele și opțiunile de personalizare pentru acest fișier rulând

Man sudoers

Dacă faceți o greșeală când editați acest fișier, este posibil să pierdeți complet accesul la funcțiile administrative. Dacă se întâmplă acest lucru, trebuie să porniți în modul de recuperare și veți primi automat drepturi de administrator și veți putea remedia totul. De asemenea, puteți edita acest fișier de pe un LiveCD.

Permiteți unui utilizator să execute o comandă fără a introduce o parolă

Pentru a preveni ca sistemul să ceară o parolă pentru anumite comenzi, este necesar să adăugați sudoers după linie # Cmnd specificația aliasului adăugați o linie în care enumerați comenzile dorite cu calea completă separată prin virgule (calea comenzii poate fi găsită rulând care nume_comandă:

# Specificație alias Cmnd Cmnd_Alias ​​​​SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernate, /sbin/reboot

Și adăugați linia la sfârșitul fișierului

Nume de utilizator ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS

Atenţie! Pașii de mai sus nu înlocuiesc necesitatea de a introduce comanda sudo înainte de comanda dumneavoastră

Crearea de sinonime (alias-uri)

Pentru a evita nu numai să introduceți o parolă pentru sudo, ci și pentru a evita deloc să introduceți sudo, faceți următoarele: deschideți fișierul .bashrc aflat în directorul dvs. de acasă

nano ~/ bashrc

și adăugați liniile la sfârșitul fișierului

alias reboot ="sudo reboot" alias poweroff ="sudo poweroff" alias pm-hibernate="sudo pm-hibernate" alias hibernate ="sudo pm-hibernate" alias shutdown ="sudo shutdown"

Perioada de valabilitate a parolei introduse

Poate doriți să schimbați durata de timp în care durează sudo fără a introduce o parolă. Acest lucru poate fi realizat cu ușurință adăugând ceva de genul următor în /etc/sudoers (visudo):

Valori implicite:foo timestamp_timeout=20

Iată sudo pentru utilizator foo valabil fără a fi nevoie să introduceți o parolă timp de 20 de minute. Dacă doriți ca sudo să necesite întotdeauna o parolă, setați timestamp_timeout la 0.

sudo nu cere parola

sudo fără parolă este o gaură teribilă de securitate, oricine are voie să facă ce vrea. Dacă ați permis acest lucru în mod intenționat, readuceți-l imediat înapoi la modul în care a fost.

Cu toate acestea, în unele cazuri, sudo încetează brusc să mai solicite o parolă de la sine. Dacă faceți visudo , puteți vedea ceva de genul acestei linii, pe care utilizatorul aparent nu a adăugat:

ALL ALL=(TOT) NOPASSWD:ALL

Cel mai probabil, această linie dezastruoasă a fost adăugată la instalarea unui program precum Connect Manager de la MTS sau Megafon. În acest caz, trebuie schimbată într-o linie care să permită rularea numai acestui Manager de conectare ca root, ceva de genul acesta:

Nume utilizator ALL= NOPASSWD: /cale/la/program

Există și alte opțiuni pentru rezolvarea problemei, o scurtă discuție.

Câteva despre sudo în sine, de la Wikipedia. sudo(Engleză) superutilizator face , literalmente „a efectua în numele superutilizator") este un program dezvoltat pentru a ajuta administratorul de sistem și vă permite să delegați anumite resurse privilegiate utilizatorilor menținând în același timp un jurnal de lucru. Ideea principală este de a oferi utilizatorilor cât mai puține drepturi, dar în același timp exact câte sunt necesare pentru a rezolva sarcinile atribuite.

Comanda sudo permite utilizatorilor să ruleze comenzi ca root sau alți utilizatori. Regulile pe care le folosește sudo pentru a decide dacă să acorde acces sunt în fișierul /etc/sudoers; Limbajul scrisului lor și exemplele de utilizare sunt descrise în detaliu în sudoers(5).

Pentru a edita fișierul /etc/sudoers, ar trebui să utilizați programul visudo, care verifică sintaxa și astfel evită erorile în reguli.

În cele mai multe cazuri, configurarea corectă a sudo face ca rularea ca superutilizator să nu fie necesară.

În mod implicit, contul root în Ubuntu este dezactivat și root pur și simplu nu are o parolă. Toate sarcinile administrative sunt efectuate prin sudo. În mod implicit, dreptul de a executa sudo este acordat primului utilizator creat în timpul instalării. Toți ceilalți sunt utilizatori obișnuiți în mod implicit.

Sudo este un instrument foarte flexibil care vă permite să configurați drepturi pentru a efectua acțiuni administrative pentru fiecare utilizator separat. De exemplu, permiteți unuia să repornească un server și oferiți altuia posibilitatea de a schimba drepturile de acces la fișiere și foldere. Deschideți fișierul /etc/sudoers. Acest lucru se poate face fie prin lansarea unei comenzi pentru a deschide fișierul în editorul de text preferat, de exemplu, astfel:

# nano /etc/sudoers

sau folosind utilitarul visudo:
# visudo

Această din urmă metodă va deschide fișierul /etc/sudoers în editorul implicit al utilizatorului sau, dacă nu este specificat unul, atunci în editorul vi. Avantajul acestei metode este că la salvarea fișierului se va verifica conformitatea cu sintaxa.

Cea mai simplă configurație arată astfel:

Valori implicite env_reset

#Specificație privilegii utilizator
root ALL=(TOT) TOATE
utilizator ALL=(ALL) ALL

Această configurație oferă utilizatorului toate drepturile utilizatorului root atunci când rulează comanda sudo. Valori implicite env_reset dezactivează complet toate variabilele utilizatorului la executarea comenzilor ca root. Acest lucru este bun din punct de vedere al securității, dar uneori provoacă probleme. Puteți permite variabilelor private să fie utilizate de către un grup sau un individ, adăugând o linie ca aceasta:
Valori implicite:%admin !env_reset

care va salva variabilele de mediu pentru toți utilizatorii grupului de administrare sau:
Valori implicite: utilizator env_keep=TZ

care va salva variabila TZ pentru utilizatorul utilizator.

Dacă serverul este administrat de un grup de persoane, atunci este logic să faceți acest lucru:
%admin ALL=(ALL) ALL

După cum ați putea ghici, această intrare oferă acces root tuturor membrilor grupului de administrare.

Puteți configura fiecare utilizator specific pentru a avea acces numai la anumite comenzi. De exemplu:
utilizator ALL = /bin/mount, /bin/kill

va acorda utilizatorilor drepturi de a executa comenzi de montare și oprire de pe orice mașină și:
user2 mydebiancomp = /sbin/modprobe

va acorda utilizatorului 2 permisiunea de a rula modprobe din mydebiancomp. Cred că sintaxa este clară:
gazdă utilizator = comandă

unde comanda este scrisă cu calea completă. Pentru un grup, totul este similar, se adaugă doar semnul „%”.

III.Setări sudo avansate.

Este foarte convenabil să creați un grup de aliasuri atunci când configurați sudo. Pentru a nu introduce comenzi repetate constant, utilizatori și gazde, le putem colecta în grupuri și stabili reguli pentru fiecare grup de aliasuri. De exemplu astfel:

Cmnd_Alias ​​​​command_alias = command1, command2, ... // aliasuri de comandă
Host_Alias ​​​​host_alias = hostname1, hostname2, ... // aliasuri de gazdă
User_Alias ​​​​user_alias = user1, user2, ... // aliasuri de utilizator

Executarea unei comenzi ca alt utilizator este de asemenea posibilă. De exemplu, cu această intrare:
user ALL = (utilizator2, utilizator3) /usr/bin/ark

user user poate rula comanda ark ca user2 sau user3, folosind tasta u, astfel:
$ sudo -u user2 ark

Implicit, sudo își amintește parolele timp de 5 minute. Dacă nu doriți acest lucru, atunci pentru fiecare utilizator, grup sau alias puteți seta o regulă separată, de exemplu atunci când:
Valori implicite: user timestamp_timeout=0

Parola utilizatorului nu va fi memorată deloc, dar dacă:
Valori implicite: user timestamp_timeout=-1

va fi reținut pentru întreaga durată de funcționare.

Sudo fără parole este, de asemenea, posibil. Există un design similar pentru aceasta:
utilizator myubuntucomp = NOPASSWD: /bin/kill

care va permite utilizatorului utilizator de pe gazda myubuntucomp să folosească kill fără a cere o parolă. Introduceți propriile valori, cum ar fi ALL în loc de numele de gazdă și de comandă, astfel încât utilizatorul să nu poată introduce niciodată o parolă pentru a executa comenzi ca root de la orice gazdă, dar rețineți că acest lucru face sistemul foarte vulnerabil.

gardian

Bloguri, bloguri, bloguri. Maxim Fuckin știe multe despre asta.

Harta interactivă a orașului Orenburg. Realizat folosind tehnologia Google Maps folosind propriile noastre dezvoltări. Resursa este tânără, dar deja destul de interesantă și utilă.

Sus