これは奇妙な問題です。 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`