GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu provést řadu příkazů v subshell bash jako jiný uživatel pomocí sudo?

Spusťte shell uvnitř sudo :sudo bash -c 'whoami; whoami'

Můžete použít jakýkoli znak kromě ' sám uvnitř jednoduchých uvozovek. Pokud opravdu chcete mít v tomto příkazu jedinou uvozovku, použijte '\'' (což je technicky:koncový literál v jednoduchých uvozovkách, literál ' znak, začátek literál s jednoduchými uvozovkami; ale efektivně je to způsob, jak vložit jednu uvozovku do řetězce literálu s jednou uvozovkou).


Příkazy můžete předat jako standardní vstup do sudo'ed bash pomocí dokumentu zde:

sudo bash <<"EOF"
whoami
id
EOF

Tímto způsobem není třeba si pohrávat se správnými citacemi, zvláště pokud máte více úrovní, např.:

sudo bash <<"EOF"
whoami
echo $USER ~
sudo -u apache bash <<"DOF"
whoami
echo $USER ~
DOF
EOF

Vyrábí:

root
root /root
apache
apache /usr/share/httpd

(Všimněte si, že nemůžete odsadit vnitřní zakončení — musí být na svém řádku samostatně. Pokud chcete použít odsazení v dokumentu here, můžete použít <<- místo << , ale pak musíte odsadit tabulátory, nikoli mezery.)


zkuste například toto, testoval jsem to:

sudo bash -c "cd /;ls;ls|grep o"

V tomto příkladu nejprve změníte adresář na /root, dále vypíšete kořenový adresář a nakonec pro kořenový adresář vyfiltrujete pouze adresáře s názvem s písmenem 'o'.

Ale myslím, že lepší způsob je napsat skript, který udělá vše, co potřebujete, a poskytne výstupní kód pro všechny složité akce. Pak můžete místo skupiny jednotlivých příkazů použít sudo skript jako v příkladu výše.


Linux
  1. Jak namapovat jeden příkaz Vim k provádění příkazů Bash založených na OS?

  2. Jak spouštět příkazy v Gnuplot pomocí skriptu Shell?

  3. Jak spustit příkaz bash s právy sudo v Javě?

  1. Jak mohu přidat běžného uživatele do souboru sudoers?

  2. Jak spustit bash skript?

  3. Jak mohu změnit všechny soubory patřící jednomu uživateli na jiného uživatele?

  1. Jak zobrazit historii příkazů jiného uživatele v Linuxu?

  2. Jak ssh jako jiný uživatel

  3. Jak mohu chown soubor na subuid bez sudo