以下を含むファイルがあるとしますrun.sh
。
#! /bin/sh -x
x-www-browser index.html
そしてls -l run.sh
言った:
-rwxr-xr-x 1 myusername myusername 39 Jan 9 19:32 run.sh
そして./run.sh
言った:
bash: ./run.sh: Permission denied
なぜ動作しないのですか?なぜsh -x run.sh
完璧に動作しますか?
より多くの情報、なぜなら明らかに容易ではないからです
を実行するとsudo
エラーは出力されませんが、何もしません。
myusername@crunchbang:/mnt/data$ sudo ./run.sh
[sudo] password for myusername:
myusername@crunchbang:/mnt/data$
答え1
ファイルシステムがrun.sh
開いてマウントされていますnoexec
。
答え2
私の考えでは、その行#!
に奇妙な文字があるようです。 ASCIINul
やその他の印刷できない文字、バックスペースキーなどがあります。一部のシェルでは、MS-DOS/Windows 2 バイト (キャリッジ リターンと改行) 行末の表示に問題があります。最新の編集者はファイルを調べて、Unixスタイル(改行)行の終わりがあるのか、Windowsスタイル(Macスタイルでも)テキストファイルがあるかどうかを確認できます。おそらく、編集者が混乱してWindowsのテキストファイルを作成した可能性があります。
これにより、カーネルは指定された「実行ファイル」を見つけることができず、存在しない「実行ファイル」を実行できないと主張します。