为什么 FAT 文件系统的工作方式不同

为什么 FAT 文件系统的工作方式不同

我知道这个问题被问过很多次了。我搜索了几个小时,但没有任何效果。

我想做的事情是设置一个小型 NAS。作为测试,我拿了一个记忆棒作为存储。记忆棒使用 fat32 文件系统格式化。因为 fat32 是 windows 文件系统,所以它与更改权限的 linux 方式不兼容。在几个小时的搜索中,我在网上找到了许多在安装过程中更改权限的不同方法,但都不是正确的方法,每次我安装的目录的权限都是 755。

我的 fstab 看起来像: /dev/something /mnt/something vfat ... 0 0

我在选项字段中尝试了很多东西。一开始只是默认,然后是 write 选项,还尝试了 fmask、dmask 和 umask 选项。

为了测试 fstab 是否不是错误,我还尝试使用 fstab 选项通过 mount 命令进行挂载。

有人知道真正的解决方案吗?只使用 NTFS 文件系统?使用其他挂载选项?

答案1

如果您仅在 LINUX 上使用闪存驱动器,我建议您重新格式化并使用 ext2 或 ext4。

如果您在 Windows 中使用它,则可以使用 fat,在 fstab 中使用此条目

/dev/something  /mnt/something  noauto,users,uid=1000,gid=100,dmask=0000,fmask=0000,utf8  0  0

如果愿意,您可以更改 uid 或 gid。

答案2

为什么 FAT 文件系统的工作方式不同

FAT、FAT32 和 exFAT 是专为文件传输和多系统兼容性而设计的文件系统。它们不考虑用户权限或许可。这使得它们对于 USB 存储驱动器等设备非常有用,因为它们可以从一台计算机移动到另一台计算机。

也就是说,Linux 系统中已挂载的分区预计将成为操作系统的一部分,因此必须在挂载命令(或 fstab 文件中的配置)中添加安全权限。

如何添加权限配置

添加权限的秘诀是在安装命令/配置中使用掩码。

正如@Panther 之前提到的,使用选项 dmask(目录掩码)和 fmask(文件掩码)。

/dev/something /mnt/something  noauto,users,uid=1000,gid=1000,dmask=0000,fmask=0001,utf8  0  0

与 Panther 的建议不同,我指定fmask=0001避免任何随机用户执行这些目录中的任何文件。

您可以在以下位置阅读有关掩码权限的更多信息另一个答案

为 NAS 共享创建自定义用户/组

我还建议创建一个用户和组(至少一个组)来指定谁可以实际访问和编辑此内容。

祝你好运。

相关内容