尽管有 +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`

相关内容