Ako spustiť v Linuxe script ako root | devLife.eu
Nov
13th

Ako spustiť v Linuxe script ako root

Zaradené do Linux, Shell script | Publikoval rado


Tux smallerMožno ste sa už stretli s tým, že je potreba nejaký shell script pustiť pod užívateľom root. Pokiaľ pracujete priamo v konzole, nie je to problém. Stačí pridať pred príkaz sudo (napr: sudo ./moj_script.sh), prípadne sa prepnúť na roota (príkaz su, prípadne sudo su) a v prípade nutnosti zadať heslo ručne. Problém je, keď chceme takýto script umožniť spustiť niekomu, kto nevie heslo alebo sa bude spúšťať z iných scriptov, kedy nie je možné heslo ručne zadať.

Jednou možnosťou, ako toto vyriešiť je nastavenie bitu set uid a roota ako ownera pre script. Táto zmena užívateľa ale nie je dokonalá a zmení sa iba vykonávajúce uid ale script tým nezíska práva roota, čiže tento spôsob je nepoužiteľný. Dôvodom prečo je to tak, je hlavne bezpečnosť a fakt, že tento spôsob zmeny užívateľa je určený pre zníženie práv (napr z roota na usera) pre vykonanie scriptu.

Postupovať treba inak. Stačí nechať daný script vykonať pomocou príkazu sudo, teda:

sudo /cesta/ku/scriptu

Sudo ale štandardne bude vyžadovať zadanie hesla, ktoré sa ale dá vypnúť menovite pre konkrétne scripty a užívateľov editáciou sudoers príkazom:

visudo

Do editora pridajte na koniec:

meno_uzivatela ALL = NOPASSWD: /cesta/ku/scriptu

Týmto sa zabezpečí, že príkaz sudo nebude pre daného užívateľa a script vyžadovať heslo. Taktiež dajte pozor na to, že sudoers sa smie editovať iba príkazom visudo. A v neposlednej rade treba scripty dobre zabezpečiť, aby ich nemohol neikto upraviť a tým získať kontrolu nad serverom.

Be Sociable, Share!



Komentáre k článku

  1. Od Sylvi dňa Máj 14, 2014 | Odpovedať

    Ahoj, prosím ta nevedel by si mi povedať čo by mohlo byť teoreticky zle, keď mám skript (fungujúci len v linuxe v grasse), ale ked ho lauchnem neotvorí sa nič? Trošku som už zúfalá. :)

Pridať komentár