Cum să rulați scripturi Shell cu comanda Sudo în Linux


sudo este un instrument puternic de linie de comandă care permite unui „utilizator permis ” să execute o comandă ca alt utilizator (superutilizator în mod implicit), așa cum este definit de o politică de securitate. Pe majoritatea, dacă nu pe toate sistemele Linux, politica de securitate este condusă de fișierul /etc/sudoers.

Citiți și: 10 configurații de Sudoers utile pentru setarea „sudo” în Linux

Prin urmare, pentru a rula un script shell sau un program ca root, trebuie să utilizați comanda sudo. Cu toate acestea, sudo recunoaște și rulează numai comenzile care există în directoarele specificate în secure_path din /etc/sudoers, cu excepția cazului în care o comandă este prezentă în secure_path, veți contracara o eroare precum cea de mai jos.

Acest lucru se va întâmpla chiar dacă scriptul există într-un director din variabila de mediu PATH, deoarece atunci când un utilizator invocă sudo, PATH este înlocuit cu secure_path.

echo  $PATH
ls  -l
sudo proconport.sh 80

În scenariul de mai sus, directorul /home/aaronkilik/bin se află în variabila de mediu PATH și încercăm să rulăm scriptul /home/aaronkilik/bin /proconport.sh(găsește procesul de ascultare pe un port) cu privilegii root.

Apoi am întâlnit eroarea „sudo: proconport.sh: command not found”, deoarece /home/aaronkilik/bin nu se află în sudo secure_path > așa cum se arată în următoarea captură de ecran.

Pentru a remedia acest lucru, trebuie să adăugăm directorul care conține scripturile noastre în sudo secure_path utilizând comanda visudo prin editarea fișierului /etc/sudoers după cum urmează.

sudo visudo

Atenție: această metodă are implicații serioase de securitate, în special pe serverele care rulează pe Internet. În acest fel, riscăm să ne expunem sistemele la diferite atacuri, deoarece un atacator care reușește să obțină acces la un director nesecurizat (fără privilegii de superutilizator) care a fost adăugat la secure_path, poate rula un script/program rău intenționat cu comanda sudo<.

Din motive de securitate, consultați următorul articol de pe site-ul sudo care explică o vulnerabilitate legată de secure_path: https://www.sudo.ws/sudo/alerts/secure_path.html

De preferință, putem oferi calea absolută către un script în timp ce îl rulăm cu sudo:

sudo ./proconport.sh 80

Asta este! Puteți urma lista de articole despre comanda sudo:

  1. Cum să rulați comanda „sudo” fără a introduce o parolă în Linux
  2. Cum să păstrați sesiunea de expirare a parolei „sudo” mai mult în Linux
  3. Cum se remediază „Numele de utilizator nu se află în fișierul sudoers. Acest incident va fi raportat ” în Ubuntu
  4. Lasă Sudo să te insulte când introduci o parolă incorectă

Dacă aveți întrebări sau gânduri cu privire la acest articol, împărtășiți-ne prin formularul de comentarii de mai jos.