+xフラグにもかかわらず、シェルスクリプトの権限が拒否されました。

+xフラグにもかかわらず、シェルスクリプトの権限が拒否されました。

これは奇妙な問題です。 1つのサーバー(共有ホスティングなので、構成とログへのアクセスが制限されている)でのみ発生しますが、理解できません。

いくつかのアプリケーション配布を実行するシェルスクリプトがあります。ファイルに+ xフラグがありますが、シェルからファイル名を呼び出すだけでは実行できず、「アクセス拒否」エラーが発生します。ファイル名を引数として 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!

最初に追加することは#!/bin/bash役に立ちません。私は他のシェル(デフォルトはbash、shで試してみました)でも試しましたが、同じことが起こりました。

これは大きな問題ではありませんが、私にとっては混乱しています。なぜですか?

ベストアンサー1

私の考えは、スクリプトが配置されているフォルダの「noexec」マウントオプションのためだと思います。このコマンドで確認できます

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

おすすめ記事