2013-01-15 120 views
11

我有一個簡單的使用sudo運行的shell腳本,因爲大部分腳本都需要它,但腳本中的其中一個命令是一個Homebrew安裝,無法使用sudo執行。在不使用sudo的情況下在shell腳本中執行單個命令

所以,我的問題是當用sudo執行一個shell腳本時,我該如何執行當前用戶的子命令,然後用sudo繼續執行腳本的其餘部分。

提示用戶再次輸入密碼並不實際,因爲腳本需要很長時間才能執行,並且需要等待提示5-10分鐘。

回答

12

最簡單的方法是通過腳本中的sudo運行子命令。用戶ID與可以通過$ SUDO_USER獲得運行(看看sudo env輸出):

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

謝謝。正是我需要的! – RayViljoen

+0

有沒有辦法做到這一點,而不需要另一個bash腳本文件? AWS在啓動服務器時僅允許一個文件作爲附件 –

0

實例化使用

sudo -u $USER_NAME bash

外殼,並通過調用執行shell腳本,

./program.sh

相關問題