Vyhledávání na webu

Jak spouštět skripty Shell pomocí příkazu Sudo v Linuxu


sudo je výkonný nástroj příkazového řádku, který umožňuje „oprávněnému uživateli“ spouštět příkaz jako jiný uživatel (ve výchozím nastavení superuživatel), jak je definováno v zásadách zabezpečení. Na většině systémů Linux, ne-li na všech, je bezpečnostní politika řízena souborem /etc/sudoers.

Přečtěte si také: 10 užitečných konfigurací sudoerů pro nastavení „sudo“ v Linuxu

Chcete-li tedy spustit shellový skript nebo program jako root, musíte použít příkaz sudo. sudo však rozpoznává a spouští pouze příkazy, které existují v adresářích zadaných v secure_path v /etc/sudoers, pokud příkaz není přítomen v secure_path, budete reagovat na chybu, jako je ta níže.

K tomu dojde, i když skript existuje v adresáři v proměnné prostředí PATH, protože když uživatel vyvolá sudo, PATH je nahrazeno zabezpečená_cesta.

echo  $PATH
ls  -l
sudo proconport.sh 80

Ve výše uvedeném scénáři je adresář /home/aaronkilik/bin v proměnné prostředí PATH a pokoušíme se spustit skript /home/aaronkilik/bin /proconport.sh (vyhledá proces naslouchající na portu) s právy root.

Poté jsme narazili na chybu „sudo: proconport.sh: příkaz nenalezen “, protože /home/aaronkilik/bin není v sudo secure_path jak je znázorněno na dalším snímku obrazovky.

Abychom to napravili, musíme přidat adresář obsahující naše skripty do sudo secure_path pomocí příkazu visudo úpravou souboru /etc/sudoers jak následuje.

sudo visudo

Pozor: Tato metoda má vážné bezpečnostní důsledky, zejména na serverech běžících na internetu. Tímto způsobem riskujeme vystavení našich systémů různým útokům, protože útočník, kterému se podaří získat přístup do nezabezpečeného (bez oprávnění superuživatele) adresáře, který byl přidán do secure_path, může spustit škodlivý skript/program pomocí příkazu sudo<.

Z bezpečnostních důvodů si přečtěte následující článek z webu sudo, který vysvětluje zranitelnost týkající se secure_path: https://www.sudo.ws/sudo/alerts/secure_path.html

Přednostně můžeme poskytnout absolutní cestu ke skriptu při jeho spuštění pomocí sudo:

sudo ./proconport.sh 80

A je to! Můžete sledovat seznam článků o příkazu sudo:

  1. Jak spustit příkaz „sudo“ bez zadání hesla v Linuxu
  2. Jak udržet relaci časového limitu hesla „sudo“ déle v Linuxu
  3. Jak opravit „Uživatelské jméno není v souboru sudoers. Tento incident bude nahlášen “ v Ubuntu
  4. Ať vás Sudo urazí, když zadáte nesprávné heslo

Pokud máte nějaké dotazy nebo myšlenky týkající se tohoto článku, podělte se s námi prostřednictvím formuláře níže.