Kako pokrenuti Shell skripte sa Sudo naredbom u Linuxu


sudo je moćan alat naredbenog retka koji omogućuje “dopuštenom korisniku” da pokrene naredbu kao drugi korisnik (superkorisnik prema zadanim postavkama), kao što je definirano sigurnosnom politikom. Na većini, ako ne i na svim Linux sustavima, sigurnosnu politiku pokreće datoteka /etc/sudoers.

Pročitajte također: 10 korisnih Sudoers konfiguracija za postavljanje 'sudo' u Linuxu

Stoga, da biste pokrenuli skriptu ljuske ili program kao root, morate koristiti naredbu sudo. Međutim, sudo prepoznaje i pokreće samo naredbe koje postoje u direktorijima navedenim u secure_path u /etc/sudoers, osim ako je naredba prisutna u secure_path, ispravit ćete pogrešku kao što je ova u nastavku.

To će se dogoditi čak i ako skripta postoji u direktoriju u varijabli okoline PATH, jer kada korisnik pozove sudo, PATH se zamjenjuje s < jak>sigurni_put.

echo  $PATH
ls  -l
sudo proconport.sh 80

U gornjem scenariju, direktorij /home/aaronkilik/bin nalazi se u varijabli okoline PATH i pokušavamo pokrenuti skriptu /home/aaronkilik/bin /proconport.sh (pronalazi slušanje procesa na portu) s root privilegijama.

Zatim smo naišli na pogrešku “sudo: proconport.sh: naredba nije pronađena”, jer /home/aaronkilik/bin nije u sudo secure_path kao što je prikazano na sljedećoj snimci zaslona.

Da bismo to popravili, moramo dodati direktorij koji sadrži naše skripte u sudo secure_path pomoću visudo naredbe uređivanjem datoteke /etc/sudoers kako slijedi.

sudo visudo

Pažnja: Ova metoda ima ozbiljne sigurnosne implikacije, posebno na poslužiteljima koji rade na internetu. Na ovaj način riskiramo izlaganje naših sustava raznim napadima, jer napadač koji uspije dobiti pristup nesigurnom (bez privilegija superkorisnika) direktoriju koji je dodan u secure_path, može pokrenuti zlonamjernu skriptu/program pomoću sudo naredbe<.

Iz sigurnosnih razloga, pogledajte sljedeći članak s web stranice sudo koji objašnjava ranjivost u vezi s secure_path: https://www.sudo.ws/sudo/alerts/secure_path.html

Poželjno je da možemo dati apsolutni put do skripte dok je izvodimo sa sudo:

sudo ./proconport.sh 80

To je to! Možete slijediti popis članaka o naredbi sudo:

  1. Kako pokrenuti naredbu 'sudo' bez unosa lozinke u Linuxu
  2. Kako duže zadržati 'sudo' sesiju isteka lozinke u Linuxu
  3. Kako popraviti "Korisničko ime nije u sudoers datoteci. Ovaj incident će biti prijavljen ” u Ubuntu
  4. Neka vas Sudo vrijeđa kada unesete netočnu lozinku

Ako imate pitanja ili razmišljanja o ovom članku, podijelite s nama putem obrasca za komentare u nastavku.