我知道这个问题被问过很多次了。我搜索了几个小时,但没有任何效果。
我想做的事情是设置一个小型 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 共享创建自定义用户/组
我还建议创建一个用户和组(至少一个组)来指定谁可以实际访问和编辑此内容。
祝你好运。