Permissions

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

  • October 9, 2014

這是一個奇怪的問題,它只發生在一台伺服器上(共享主機,所以我對配置和日誌的訪問權限有限),但我無法理解它。

我有一個執行某些應用程序部署的 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 中嘗試過),同樣的事情發生了。

這不是什麼大問題,但對我來說很莫名其妙。可能是什麼原因?

我認為這是因為腳本所在文件夾的“noexec”掛載選項。您可以嘗試通過此命令進行檢查

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

引用自:https://unix.stackexchange.com/questions/160307