Shell-komentosarjojen suorittaminen Sudo-komennolla Linuxissa


sudo on tehokas komentorivityökalu, jonka avulla "sallittu käyttäjä" voi suorittaa komennon toisena käyttäjänä (oletuksena pääkäyttäjänä) suojauskäytännön mukaisesti. Useimmissa ellei kaikissa Linux-järjestelmissä suojauskäytäntöä ohjaa /etc/sudoers-tiedosto.

Lue myös: 10 hyödyllistä Sudoers-asetusta "sudon" asettamiseen Linuxissa

Siksi, jos haluat suorittaa komentosarjan tai ohjelman pääkäyttäjänä, sinun on käytettävä sudo-komentoa. sudo kuitenkin tunnistaa ja suorittaa vain komennot, jotka ovat olemassa hakemistoissa, jotka on määritetty kohdassa /etc/sudoers kohdassa secure_path, ellei komentoa ole secure_path, korjaat alla olevan kaltaisen virheen.

Näin tapahtuu, vaikka skripti olisi hakemistossa PATH-ympäristömuuttujassa, koska kun käyttäjä kutsuu sudo, PATH korvataan merkillä secure_path.

echo  $PATH
ls  -l
sudo proconport.sh 80

Yllä olevassa skenaariossa hakemisto /home/aaronkilik/bin on PATH-ympäristömuuttujassa ja yritämme suorittaa komentosarjan /home/aaronkilik/bin /proconport.sh (löytää prosessin kuuntelun portista) pääkäyttäjän oikeuksin.

Sitten havaitsimme virheen "sudo: proconport.sh: komentoa ei löydy", koska /home/aronkilik/bin ei ole sudo secure_path > kuten seuraavassa kuvakaappauksessa näkyy.

Korjataksemme tämän lisäämällä skriptimme sisältävä hakemisto sudo secure_path -kenttään käyttämällä visudo-komentoa muokkaamalla tiedostoa /etc/sudoers. seuraavasti.

sudo visudo

Huomio: Tällä menetelmällä on vakavia turvallisuusvaikutuksia erityisesti Internetissä toimivissa palvelimissa. Tällä tavalla altistamme järjestelmämme erilaisille hyökkäyksille, koska hyökkääjä, joka onnistuu pääsemään turvattomaan (ilman pääkäyttäjän oikeuksia) hakemistoon, joka on lisätty kohtaan secure_path, voi suorittaa haitallisen komentosarjan/ohjelman sudo-komennolla<..

Turvallisuussyistä tutustu seuraavaan sudo-verkkosivuston artikkeliin, joka selittää suojatun_polun haavoittuvuuden: https://www.sudo.ws/sudo/alerts/secure_path.html

Mieluummin voimme tarjota skriptin absoluuttisen polun ajaessasi sitä sudo:lla:

sudo ./proconport.sh 80

Se siitä! Voit seurata sudo-komentoa koskevien artikkelien luetteloa:

  1. Kuinka suorittaa "sudo" -komento syöttämättä salasanaa Linuxissa
  2. Kuinka pitää "sudo"-salasanan aikakatkaisuistunto pidempään Linuxissa
  3. Korjaus "Käyttäjänimi ei ole sudoers-tiedostossa. Tästä tapauksesta raportoidaan ” Ubuntussa
  4. Anna Sudon loukata sinua, kun annat väärän salasanan

Jos sinulla on kysyttävää tai ajatuksia tästä artikkelista, jaa meille alla olevan kommenttilomakkeen kautta.