我尝试使用此命令手动挂载:
sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137
我不知道这里的dmask
和做什么。我知道它们是用来设置权限的,但是当我检查挂载目录中的文件和文件夹的权限时,它们与我使用和fmask
设置的权限不一样。fmask
dmask
那么,他们实际上在做什么?
答案1
fmask
并且dmask
mount
选项FAT 文件系统, 基于fstab
。
它们用于定义权限(umask
将它们设置为文件和目录,而fmask
仅适用于文件和dmask
目录)。
掩码不是文件的权限,它们用于获取您想要的权限。此外,掩码不能添加任何权限,它们仅限制文件或目录可以拥有的权限。
这umask
是文件和文件夹的默认设置,如果您想自定义文件和文件夹的权限,您应该使用fmask
与dmask
相同的用法umask
。
掩码权限与传递给命令的八进制权限代码不同chmod
,但是此表对于理解掩码权限的工作原理非常有帮助:
0 1 2 3 4 5 6 7
r + + + + - - - -
w + + - - + + - -
x + - + - + - + -
它的工作方式与普通八进制权限相同,但从 7 中减去,并使用绝对值。例如,如果您想将权限设置为,0777
则需要在(例如)0000
中设置它,如果您想将其设置为,您将它设置为:umask
umask=0000
0755
0022
- 第一个字符表示其八进制权限
- 第二个是给主人的
- 第三是团体
- 第四个是其他,即任何其他用户
(来源)
man mount
给出这个:
umask=value
Set the umask (the bitmask of the permissions that are not
present). The default is the umask of the current process. The
value is given in octal.
dmask=value
Set the umask applied to directories only. The default is the
umask of the current process. The value is given in octal.
fmask=value
Set the umask applied to regular files only. The default is the
umask of the current process. The value is given in octal.