CD / DVDメディアでスクリプトを実行するためにshを使用する必要があるのはなぜですか?

CD / DVDメディアでスクリプトを実行するためにshを使用する必要があるのはなぜですか?

もう一度私はシステムの奇妙な動作を発見しました。私はDebian 6.0.6を実行していますが、CD / DVDから直接スクリプトを実行するのに問題があります。最後に、以下を使用する必要がありました。

sh /media/cdrom/command

それを実行します。 shに頼らなければならないのは何がそんなに大きいのですか?スクリプトがbash関数に依存している場合はどうなりますか?私の考えは本当に迷惑であり、セキュリティにはあまり役に立ちません。

この行動の正当な理由を知っている人はいますか?

PS:./...を使用して直接実行しようとすると、問題の手がかりを提供しないエラーが発生します(ファイルシステムはnoexecとしてマウントされます)。

bash: ./media/cdrom/command: No such file or directory

bash /media/cdrom/commandで実行すると、同じエラーが発生します(コマンドラインから引数として渡されたコマンドの場合でも、インストールオプションの検証はbashでも確認されます)。

永続的な解決策は、/etc/fstabのマウントオプションにexecを追加することです。たとえば、次のようになります。

/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec     0       0

ベストアンサー1

ファイルシステムは通常noexec,nosuid、セキュリティ強化のためにデフォルトでマウントされています。したがって、ファイルセットに実行可能なビットが表示されても、カーネルはそれを実行することを拒否します。interpreter path/to/scriptこれをシステムへの要求として呼び出して実行すると、システムは引数を受け取り、解析してファイルシステムinterpreterによってpath/to/script課される制限をバイパスします(コンパイルされた実行ファイルを使用して同じ効果を得ることができます)/lib/ld-linux.so.1 path/to/executable

だから1つのオプションですmount -o exec .../etc/fstab通常、defaultsオプションをに置き換えてオプションを配置できますdefaults,exec。ただし、実際に行っていることを知らない限り、これを行わないことをお勧めします。

BASHの詳細については。としてbash実行されてもshbash path/to/script

おすすめ記事