GNU/Linux >> Znalost Linux >  >> Linux

Spusťte skript shellu v aktuálním prostředí s oprávněním sudo

Nejsem si jistý, jestli to porušuje nějaká pravidla, ale

sudo bash script.sh

zdá se, že to pro mě funguje.


To, o co se snažíte, je nemožné; váš aktuální shell běží pod vaším běžným uživatelským ID (tj. bez rootu přístup sudo by vám dalo) a neexistuje žádný způsob, jak mu udělit přístup root . Co sudo je vytvořit nový *pod*proces, který běží jako root. Podprocesem může být pouze běžný program (např. sudo cp ... spustí cp program v kořenovém procesu) nebo to může být kořenový subshell, ale to nemůže být aktuální shell.

(Ve skutečnosti je to ještě nemožné, protože sudo samotný příkaz je vykonáván jako podproces aktuálního shellu – což znamená, že v jistém smyslu je již příliš pozdě na to, aby něco provedl v „aktuálním shellu“, protože to není místo, kde se provádí.)


Linux
  1. Aktuální adresář skriptu Shell?

  2. Spusťte shell skript v novém terminálu z aktuálního terminálu

  3. Povolení bash.sh ke spuštění cronu odepřeno

  1. Spouštějte skript shellu každý den v určitou dobu

  2. Mohu zajistit, aby se skript vždy spouštěl jako root?

  3. Šablony s Linuxem ve skriptu Shell?

  1. Vykonat řadu příkazů jedním sudem?

  2. Jak zpětně zajistit, aby skript běžel jako root?

  3. Jak zajistit, aby skript Shell vždy běžel jako root?