儘管有 +x 標誌,Shell 腳本權限仍被拒絕

儘管有 +x 標誌,Shell 腳本權限仍被拒絕

這是一個奇怪的問題,它只發生在一台伺服器上(共享託管,因此我對配置和日誌的存取權限有限),但我無法理解它。

我有一個運行某些應用程式部署的 shell 腳本。該檔案有一個 +x 標誌,但我無法透過簡單地從 shell 呼叫其名稱來運行它,我收到「訪問被拒絕」錯誤。使用檔案名稱作為參數呼叫 bash 就像一個魅力。它看起來像這樣:

[someuser@someserver:~] $cat test.sh
echo "hooray!"
[someuser@someserver:~] $chmod +x test.sh
[someuser@someserver:~] $ls -l test.sh
-rwxrwxr-x 1 someuser someuser 14 Oct  8 11:27 test.sh
[someuser@someserver:~] $./test.sh
-bash: ./test.sh: Permission denied
[someuser@someserver:~] $bash test.sh
hooray!

在開頭加上 a#!/bin/bash沒有幫助。我也從其他 shell 嘗試過(預設是 bash,在 sh 中嘗試過),同樣的事情發生了。

這並不是什麼大問題,但對我來說卻很困惑。可能是什麼原因?

答案1

我認為這是因為腳本所在資料夾的“noexec”掛載選項。

mount | grep `df -P /path/to/folder/with/script | tail -1 | cut -d ' ' -f 1`

相關內容