Acasă
» LINUX
»
Cum să rulezi sudo fără parolă pe Linux
Cum să rulezi sudo fără parolă pe Linux
Puteți rula sudo fără parolă adăugând o NOPASSWDregulă la politica sudoers. Cea mai sigură abordare este să permiteți doar comanda administrativă exactă de care aveți nevoie, în loc să dezactivați solicitările de parolă pentru fiecare comandă sudo.
Înainte de a schimba ceva, rețineți ce face această setare: oricine sau orice obține controlul asupra contului dvs. conectat poate rula comanda permisă ca root fără un alt pas de autentificare. Manualul sudoers documentează NOPASSWDeticheta care elimină autentificarea pentru comenzile corespondente.
De ce sudo -s nu este o metodă sudo fără parolă
Sfatul mai vechi de a executa comanda sudo -snu configurează de fapt sudo fără parolă. -sOpțiunea pornește un shell sub sudo, dar politica sudo poate solicita în continuare autentificarea mai întâi. De asemenea, este posibil să vedeți mai multe comenzi rulate fără o altă solicitare, deoarece sudo stochează în mod normal în cache autentificarea reușită pentru o perioadă scurtă de timp. Aceasta este diferită de o NOPASSWDregulă permanentă.
Executați o comandă sudo specifică fără parolă
Acest exemplu permite utilizatorului alexsă repornească Nginx fără parolă. Înlocuiți numele de utilizator, comanda și argumentele cu valori care corespund sistemului dvs.
1. Confirmați numele de utilizator și calea comenzii
Executați următoarele comenzi ca utilizator obișnuit:
whoami
command -v systemctl
A doua comandă poate returna /usr/bin/systemctl. Folosește calea raportată de propriul sistem. Regulile Sudoer ar trebui să identifice comenzile după calea lor completă.
Verificați numele contului și calea completă a comenzii înainte de a scrie regula sudoers.
2. Creați un fișier drop-in dedicat pentru sudoers
În loc să editați /etc/sudoersdirect, utilizați visudocu un fișier în /etc/sudoers.d:
sudo visudo -f /etc/sudoers.d/alex-nopasswd
În mod normal, veți introduce parola pentru acest pas de configurare. visudoEste preferat deoarece verifică sintaxa înainte de a accepta modificările. Manualul Ubuntu visudo menționează, de asemenea, că visudoblochează fișierul în timpul editării și verifică erorile de analiză.
Deschideți un fișier drop-in sudoers separat cu , visudoîn loc să editați fișierul principal de politici cu un editor de text obișnuit.
3. Adăugați cea mai îngustă regulă NOPASSWD de care aveți nevoie
Pentru exemplul de repornire Nginx, adăugați:
alex ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx
Această regulă permite rularea ca utilizator root fără autentificare doar a comenzii cu acele argumente. Pentru a permite mai multe comenzi specifice, separați specificațiile comenzilor prin virgule.
Dacă doriți în mod deliberat ca fiecare comandă sudo pentru un utilizator să sară peste autentificare, regula generală este:
alex ALL=(ALL:ALL) NOPASSWD: ALL
Acest lucru este mult mai puțin sigur și rareori este cea mai bună alegere pe o stație de lucru sau un sistem partajat. O sesiune de utilizator compromisă ar avea o cale directă către privilegii de root nerestricționate.
O regulă specifică comenzii este mai sigură decât acordarea NOPASSWD: ALL.
4. Validați și testați regula
După salvare și ieșirea din editor, verificați politica completă sudoers:
sudo visudo -c
Nu săriți peste această verificare. visudoDocumentația explică faptul că politica sudoers este evaluată ca un întreg, așadar verificarea completă a configurației identifică problemele care pot implica fișierele incluse.
Apoi invalidați orice credențială sudo stocată în cache și testați neinteractiv:
sudo -k
sudo -n /usr/bin/systemctl restart nginx
Opțiunea -nîi spune lui sudo să nu solicite parola. Dacă regula corespunde, comanda se execută fără a solicita parola. Dacă autentificarea este încă necesară, sudo se închide cu o eroare în loc să aștepte introducerea unei date. Acest lucru este sudo -nutil în special pentru scripturile care nu trebuie să se blocheze niciodată la o solicitare de parolă.
Validați politica, ștergeți acreditările din cache și utilizați sudo -npentru a confirma că comanda nu mai necesită într-adevăr o parolă.
Depanarea erorilor sudo fără parolă
Comanda solicită în continuare o parolă: confirmați că numele de utilizator, calea comenzii și argumentele corespund exact cu intrarea sudoers.
Comanda nu este permisă: executați sudo -lpentru a verifica privilegiile atribuite contului dvs.
Se pare că elementul drop-in este ignorat: folosiți un nume de fișier simplu, cum ar fi alex-nopasswd. Unele configurații sudoers ignoră fișierele /etc/sudoers.dale căror nume conțin un punct sau se termină în sufixe de tip backup.
Trebuie să anulați modificarea: redeschideți meniul drop-in cu sudo visudo -f /etc/sudoers.d/alex-nopasswd, eliminați sau restrângeți regula, salvați și rulați sudo visudo -cdin nou.
Cea mai bună practică
Folosește sudo fără parolă doar atunci când există o nevoie concretă, cum ar fi o acțiune de service strict controlată sau o sarcină de automatizare. Preferă o cale de comandă exactă și argumente exacte, evită-le NOPASSWD: ALLcând este posibil și păstrează regula sudoers cât mai mică posibil. Aceasta păstrează cea mai mare parte a protecției sudo, eliminând în același timp solicitarea de parolă acolo unde este cu adevărat necesară.