Kā palaist čaulas skriptus ar Sudo komandu Linux


sudo ir spēcīgs komandrindas rīks, kas ļauj “atļautam lietotājam” izpildīt komandu kā citu lietotāju (pēc noklusējuma virslietotāju), kā noteikts drošības politikā. Lielākajā daļā, ja ne visās Linux sistēmās, drošības politiku nosaka/etc/sudoers fails.

Tāpēc, lai palaistu čaulas skriptu vai programmu kā root, jums jāizmanto sudo komanda. Tomēr sudo atpazīst un palaiž tikai komandas, kas pastāv direktorijos, kas norādītas faila/etc/sudoers failā drošais ceļš, ja vien komanda nav drošā_ceļš, jūs novērsīsit kļūdu, piemēram, zemāk redzamo.

Tas notiks pat tad, ja skripts eksistē direktorijā vides mainīgajā PATH, jo, kad lietotājs izsauc sudo, PATH tiek aizstāts ar secure_path.

$ echo  $PATH
$ ls  -l
$ sudo proconport.sh 80

Iepriekš minētajā scenārijā direktorijs/home/aaronkilik/bin atrodas PATH vides mainīgajā, un mēs mēģinām palaist skriptu /home/aaronkilik/bin/proconport.sh (atrod procesu klausoties portā) ar root tiesībām.

Tad mēs sastapāmies ar kļūdu “sudo: proconport.sh: komanda nav atrasta”, jo/home/aaronkilik/bin nav sudo secure_path, kā parādīts nākamajā ekrānuzņēmumā.

Lai to novērstu, mums ir jāpievieno direktorija, kurā ir mūsu skripti sudo secure_path, izmantojot komandu visudo, rediģējot failu/etc/sudoers šādi.

$ sudo visudo

Uzmanību: šai metodei ir nopietna ietekme uz drošību, īpaši uz serveriem, kas darbojas internetā. Tādā veidā mēs riskējam pakļaut savas sistēmas dažādiem uzbrukumiem, jo uzbrucējs, kuram izdodas piekļūt nedrošam (bez galvenā lietotāja privilēģijām) direktorijam, kas pievienots drošajam_ceļam, var palaist ļaunprātīgu skriptu/programmu ar sudo komandu.

Drošības apsvērumu dēļ skatiet šo sudo vietnes rakstu, kurā izskaidrota ievainojamība, kas saistīta ar secure_path:

Vēlams, lai mēs varētu nodrošināt absolūto ceļu uz skriptu, palaižot to ar sudo:

$ sudo ./proconport.sh 80

Tieši tā! Jūs varat sekot rakstu sarakstam par sudo komandu:

  1. Kā palaist komandu “sudo”, Linux neievadot paroli
  2. Kā ilgāk saglabāt “sudo” paroles noildzes sesiju Linux
  3. Kā izlabot “Lietotājvārda nav sudoers failā. Par šo incidentu tiks ziņots ”Ubuntu
  4. Ļaujiet Sudo tevi apvainot, ievadot nepareizu paroli

Ja jums ir kādi jautājumi vai domas par šo rakstu, dalieties ar mums, izmantojot zemāk esošo komentāru veidlapu.