“dmask”和“fmask”挂载选项

use*_*973 31 permissions mount

我尝试使用此命令手动挂载:

sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137
Run Code Online (Sandbox Code Playgroud)

我没有得到什么dmaskfmask在这里做什么。我知道它们用于设置权限,但是当我检查挂载目录中的文件和文件夹的权限时,它们与我使用fmask和设置的不同dmask

那么,他们实际上在做什么呢?

MrV*_*dji 56

fmaskdmaskFAT 文件系统的mount选项,基于.fstab

它们用于定义权限umask将它们设置为文件和目录,而fmask仅适用于文件和dmask目录)。

掩码不是文件的权限,它们用于获取您想要的权限。此外,掩码不能添加任何权限,它们仅限制文件或目录可以具有的权限。


umask是对文件和文件夹的默认值,如果你想定制文件和文件夹的权限,你应该使用fmaskdmask相同用途的umask

掩码权限与传递给chmod命令的八进制权限代码不同,但是此表非常有助于理解掩码权限的工作原理:

    0   1   2   3   4   5   6   7
r   +   +   +   +   -   -   -   -
w   +   +   -   -   +   +   -   -
x   +   -   +   -   +   -   +   -
Run Code Online (Sandbox Code Playgroud)

它作为正常的八进制权限工作,但从 7 中减去,并使用绝对值。例如,如果您想将权限设置为0777,则需要将其设置0000umask(例如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.
Run Code Online (Sandbox Code Playgroud)

您还可以找到例子,从Drenriza技术的解释ubuntu论坛,当然还有维基百科有很大帮助,像往常一样。