Edw*_*alk 6 mount executable fat
我注意到当我在 Linux 上挂载 FAT 文件系统时,所有文件都设置了它们的可执行权限。为什么是这样?您几乎不可能或想要直接执行在 FAT 文件系统上找到的任何程序,并且为所有文件隐式设置可执行位对我来说似乎很烦人。
我知道 FAT(以及其他文件系统)没有模式位,因此我在文件上看到的 777 模式只是由Unix 下的文件系统驱动程序模拟的。我的问题是为什么是 777 而不是 666?
Ste*_*itt 11
FAT 可能不是 POSIX 风格的文件系统,这并不意味着您不应该被允许在其上存储可执行文件并直接从中运行它们。由于 FAT 不存储 POSIX 权限,因此(很容易)发生这种情况的唯一方法是用于文件的默认模式是否允许它们执行...
过去,当 (V)FAT 仍被用作其他操作系统(DOS 和 Windows)的主要文件系统且硬盘较小时,在 FAT 文件系统上存储 Unix/Linux 二进制文件并不罕见。(甚至还有一个 FAT 变体,它将 POSIX 属性存储在特殊文件中,因此您可以在 FAT 文件系统上运行 Linux。)现在您仍然可以这样做——例如在 USB 密钥上。
如果您担心安全隐患,可以使用多种选项。noexec
并且nodev
可能已经为您的发行版上的可移动文件系统设置了;dmask
并fmask
允许您专门确定使用的模式。showexec
只会在带有.bat
,.com
或.exe
扩展名的文件上设置可执行位。(请注意,文件的权限和执行它的能力是分开的...)