2013-01-15 13 views
11

Mam prosty skrypt powłoki uruchamiany z sudo, ponieważ wymaga tego większość skryptu, jednak jednym z poleceń w skrypcie jest instalacja Homebrew, której nie można uruchomić przy pomocy sudo.Wykonywanie pojedynczego polecenia w skrypcie powłoki bez sudo

Tak, moje pytanie dotyczy wykonywania skryptu powłoki z sudo, w jaki sposób wykonać polecenia podrzędne jako bieżący użytkownik, a następnie kontynuować resztę skryptu za pomocą sudo.

Monitowanie użytkownika, aby ponownie wprowadzić swoje hasło, nie jest tak praktyczne, ponieważ wykonanie skryptu zajmuje naprawdę dużo czasu i wymaga czekania 5-10 minut na zgłoszenie.

Odpowiedz

12

Najprostszym sposobem jest uruchomienie podkomendy przez sudo z poziomu skryptu. Identyfikator użytkownika, aby uruchomić z można uzyskać przez $ SUDO_USER (patrzeć na wyjściu sudo env):

sudo -u $SUDO_USER ./exec_as_normal_user.sh 
+0

Dziękuję. Dokładnie to, czego potrzebowałem! – RayViljoen

+0

Czy jest jakiś sposób na zrobienie tego bez potrzeby kolejnego pliku skryptu bash? AWS dopuszcza tylko jeden plik jako załącznik podczas uruchamiania serwera –

0

instancji powłoki korzystając

sudo -u $USER_NAME bash

i wykonać skrypt dzwoniąc,

./program.sh

Powiązane problemy