2013-07-02 106 views
3

我正在運行一個shell腳本(Script.sh),它本身正在調用其他shell腳本( Script2.sh,Script3.sh等)。我以root用戶身份登錄並賦予所有腳本執行權限。但是在執行「ls -l」時,腳本仍然沒有在文件屬性列上顯示執行權限。 「Script.sh」通過下面的語法運行:權限問題,無法以root身份運行腳本

[email protected] $ sh Script.sh 

但是這個腳本是不能執行其他腳本(Script2.sh,Script3.sh)通過它被調用。錯誤報告爲「權限被拒絕」

我已經通過chmod命令授予了執行權限,但同時也沒有更改權限,也沒有執行腳本(Script2.sh,Script3.sh ..)。

我希望這個錯誤是由於Script2.sh被稱爲在Script3.sh的原因:

./Script2.sh 
./Script3.sh 

如果我把它寫成: SH Script2.sh 它執行了,但沒有按」牛逼能夠執行其被稱爲Script2.sh和報告同樣的錯誤裏面的

+0

很難說沒有看到腳本。你可以顯示一個「http://sscce.org/」 –

+0

你使用的chmod命令是什麼?您需要在腳本上設置執行位。 – devnull

+0

可能您的腳本位於裝有「noexec」標誌的分區上。 –

回答

6

確保你的分區是安裝與noexec標誌(其中「權限被拒絕」其他腳本 - 顧名思義 - 防止製作任何可執行文件)

1

請確保權限和所有權的script.sh文件,也儘量

# chmod 755 script.sh 
# chown root.root script.sh 

感謝。

+1

'chmod u + x [文件名]'爲我做了詭計 – Sonny

+1

@Sonny:'chmod u + x script.sh'和'chmod 0755 script.sh之間的區別; chown root.root'與前者一樣,你只能確保用戶可以執行腳本,而後者確保每個人都可以執行它,並且只有root用戶才能修改它。 –

相關問題