foo.sh
現在のディレクトリにファイルがあります。実行しようとすると、次の結果./foo.sh
が表示されます。
-bash: ./foo.sh: /bin/sh: bad interpreter: Permission denied
しかし、実行してみると/bin/sh ./foo.sh
大丈夫です。
./foo.sh
実行でき、自動的に/ bin / shを使用して実行できるように、この問題をどのように修正しますか?
編集:いいです。これはChrome OSであり、この特定のフォルダはnoexec
。./foo.sh
なぜ?なぜsh foo.sh
走っても同じ目標を達成できますか?では、noexec
どんな安定感をもたらしますか?
ベストアンサー1
このnoexec
フラグは「予想される」動作なので、スクリプトに適切に適用されます。
しかし、これらの設定は、noexec
自分がしていることについて十分に知らない人を妨げるだけです。実行するとsh foo.sh
、実際には使用されなくなったデフォルトのsh
場所(おそらく)で実行されます。/bin
noexec
noexec
直接電話して通常のバイナリを取得することもできますld
。
cp /bin/bash $HOME
/lib/ld-2.7.so $HOME/bash
を使用して場所が見つかったかどうかにかかわらず、bashを実行しますnoexec
。