UnixがFATファイルシステムに対して実行可能フラグを設定するのはなぜですか? [閉鎖]

UnixがFATファイルシステムに対して実行可能フラグを設定するのはなぜですか? [閉鎖]

LinuxにFATファイルシステムを搭載したとき、すべてのファイルに実行権限が設定されていることがわかりました。なぜこれですか? FATファイルシステムでプログラムを直接実行することはほとんど不可能または望ましくなく、すべてのファイルに対して実行ビットを暗黙的に設定することは私にとっては迷惑です。

FAT(およびその他のファイルシステム)にはモードビットがないため、ファイルに777モードが表示されます。ファイルシステムドライバでエミュレートUnixで。私の質問はなぜ666ではなく777ですか?

答え1

FATはPOSIXスタイルのファイルシステムではないかもしれませんが、実行可能ファイルをFATに保存してFATから直接実行することはできません。 FATはPOSIX権限を保存しないため、これが(簡単に)発生する唯一の方法は、ファイルが実行を許可するデフォルトモードにある場合です。

以前は、(V)FATがまだ他のオペレーティングシステム(DOSとWindows)の基本ファイルシステムとして使用され、ハードドライブが小型であるときにUnix / LinuxバイナリをFATファイルシステムに保存することが一般的でした。 (特別なファイルにPOSIX属性を格納するFATバリアントもあるため、FATファイルシステムでLinuxを実行できます。)たとえば、USBキーを使用して今日でもそれを行うことができます。

セキュリティリスクが懸念される場合は、いくつかのオプションを使用できます。ディストリビューションですでにリムーバブルファイルシステムに設定されている可能性がnoexecあり、使用するモードを具体的に決定できます。または、拡張子を持つファイルのみ実行可能ビットが設定されます。 (参考に、ファイルの権限と実行能力は別々です...)nodevdmaskfmaskshowexec.bat.com.exe

関連情報