我有一個簡單的使用sudo運行的shell腳本,因爲大部分腳本都需要它,但腳本中的其中一個命令是一個Homebrew安裝,無法使用sudo執行。在不使用sudo的情況下在shell腳本中執行單個命令
所以,我的問題是當用sudo執行一個shell腳本時,我該如何執行當前用戶的子命令,然後用sudo繼續執行腳本的其餘部分。
提示用戶再次輸入密碼並不實際,因爲腳本需要很長時間才能執行,並且需要等待提示5-10分鐘。
我有一個簡單的使用sudo運行的shell腳本,因爲大部分腳本都需要它,但腳本中的其中一個命令是一個Homebrew安裝,無法使用sudo執行。在不使用sudo的情況下在shell腳本中執行單個命令
所以,我的問題是當用sudo執行一個shell腳本時,我該如何執行當前用戶的子命令,然後用sudo繼續執行腳本的其餘部分。
提示用戶再次輸入密碼並不實際,因爲腳本需要很長時間才能執行,並且需要等待提示5-10分鐘。
最簡單的方法是通過腳本中的sudo
運行子命令。用戶ID與可以通過$ SUDO_USER獲得運行(看看sudo env
輸出):
sudo -u $SUDO_USER ./exec_as_normal_user.sh
實例化使用
sudo -u $USER_NAME bash
外殼,並通過調用執行shell腳本,
./program.sh
謝謝。正是我需要的! – RayViljoen
有沒有辦法做到這一點,而不需要另一個bash腳本文件? AWS在啓動服務器時僅允許一個文件作爲附件 –