如果我想在主腳本文件中以特定用戶身份調用另一個shell腳本,我該如何去做呢?孩子的腳本似乎鬆散了它運行的用戶的上下文,我還沒有找到任何有用的子腳本技術。運行shell腳本作爲父腳本的用戶
例:war-install.sh
if [ ! -d /opt/tomcat/ ]
then
./tomcat-install-files/install.sh
fi
這裏的問題是,如果我跑war-install.sh作爲root或使用sudo命令,./tomcat-install-files/install.sh似乎失去了sudo/root的上下文。我該如何糾正這一點?
謝謝!
它不應該(改變用戶),除非子命令自己的setuid後:但一般以其他用戶身份運行命令(如果shell腳本不好主意!)。是什麼讓你認爲它失去了sudo用戶? – torek 2012-03-11 04:28:15
如果我運行命令「sudo ./tomcat-install-files/install.sh」,腳本運行良好。但是,如果我運行「sudo war-install.sh」,一旦它調用install.sh,我會得到一堆「權限被拒絕」錯誤。 – Roosh 2012-03-11 05:18:38
以上是war-install.sh的全部內容嗎?/opt/tomcat /是否作爲目錄存在?假設「否」(還有更多)和「否」(所以它到達./行)是「。」仍然指向那個地方的同一個地方? (在調用./tomcat-install-files/install.sh之前,嘗試設置-x和/或在那裏執行'pwd')。 – torek 2012-03-11 05:53:49