FAT Mountoption allowed_utime 解释

FAT Mountoption allowed_utime 解释

我试图弄清楚以下 (v)FAT 的 Mountoption 到底做了什么(在 Linux 中):

allow_utime=### -- 该选项控制mtime/atime的权限检查。

              20 - If current process is in group of file's group ID,
                   you can change timestamp.
               2 - Other users can change timestamp.

             The default is set from `dmask' option. (If the directory is
             writable, utime(2) is also allowed. I.e. ~dmask & 022)

             Normally utime(2) checks current process is owner of
             the file, or it has CAP_FOWNER capability.  But FAT
             filesystem doesn't have uid/gid on disk, so normal
             check is too unflexible. With this option you can
             relax it.

[来源]

问题:这(上面)是什么意思?

试图查找它时,我以 C 代码结束,这对我没有多大帮助,所以这和man 2 utime(如上所述)目前都对我没有多大帮助。我喜欢使用源……

utimeutime() 系统调用将 filename 指定的 inode 的访问和修改时间更改为行动时间modtime时间字段。

我将其读为:启用更改时间戳。超级额外的荣誉给你,谁能给出一个如何使用这个 Mountoption 的实际例子(allow_utim

答案1

在支持普通 Unix 文件属性的文件系统上,每个文件都有一个被指定为所有者的用户。只有文件的所有者可以更改其时间戳utime。其他用户不允许更改时间戳,即使他们具有写入权限。

FAT 文件系统不会像所有者那样记录任何内容。 FAT 文件系统驱动程序假装特定用户是每个文件的所有者:执行安装的用户或参数指定的用户uid。使用正常规则,只有该用户才被允许更改时间戳。文件还有一个所属组,由gid参数确定。

FAT 文件系统不记录 Unix 文件权限,因此驱动程序会弥补它们。它根据umaskfmaskdmask参数分配权限,因此所有目录和所有常规文件都具有相同的权限。

当所有者以外的用户对文件系统具有写访问权限时,他们不仅可以修改常规文件和目录,还可以修改文件元数据,这是有意义的。 FAT 文件系统上令人感兴趣的主要元数据是文件的时间戳。通常,只有拥有用户才能修改时间戳。通过传递allow_utime挂载选项,您也可以允许其他用户更改时间戳。例如,要允许组foo修改文件系统中的任何内容,并允许其他人读取但不能写入,您可以传递参数

gid=foo,umask=002,allow_utime=20

allow_utime(这实际上是基于 umask 的默认值)。

相关内容