使用 noexec 的 ntfs 的 umask、fmask、dmask 的 fstab 挂载选项

使用 noexec 的 ntfs 的 umask、fmask、dmask 的 fstab 挂载选项

我有一个 ntfs 分区,当我在 fstab 中使用默认选项挂载它时,我得到文件和目录: rwxrwxrwx = 0777 显然 ntfs 不支持“noexec”选项,并且我不希望文件和目录带有“x”标志。所以我想问一下fmask、dmask和umask应该设置什么值?当我设置 umask=0666 时

/dev/sda3       /ntfsPartition  ntfs-3g     defaults,noatime,umask=0666,locale=en_US.utf8,errors=ro 0 0

我得到 d--x--x--x 作为分区的挂载目录。我可以去目录:

cd /ntfsPartition

但我无法阅读内容:

ls /ntfsPartition
ls: cannot open directory '.': Permission denied

提前致谢!

答案1

x标志对于目录是必需的,以便访问其内容。

仅使用r目录上的标志,您可以获得目录列表,但无法访问其中的文件和子目录。只需要x目录上的标志,您将看不到目录列表,但如果权限允许,则可以访问文件和子目录您可以指定您要访问的内容的确切名称。因此,在大多数情况下,您对目录只有两种通常有用的权限选择:r-xrwx

因此,由于umaskmount 选项适用于文件和目录,并且您不希望x在文件上使用该标志,因此您需要使用fmaskand dmaskonly,这样您就可以在文件上放置一组权限,在目录上放置另一组权限。

权限及对应的掩码号:

  • rwx= 掩码编号 0
  • rw-= 掩码编号 1(对于目录不是很有用)
  • r-x= 掩码编号 2
  • r--= 掩码编号 3
  • -wx= 掩码编号 4(特殊情况:“只写目录”的近似值)
  • -w-= 掩码号 5(对于目录不是很有用)
  • --x= 掩码编号 6(对于目录:仅通过已知文件名访问)
  • ---= 掩码编号 7(无法访问)

如果您想要完全访问目录以及除x文件标志之外的所有内容,则需要 0 作为相应的dmask数字和1数字fmask

对于 NTFS-3g 掩码编号,第一位数字始终为 0,表示这些值是八进制数。第二位数字将指定使用该uid=选项指定的用户(或执行安装的用户,如果未指定)的访问权限,第三位数字将指定使用该gid=选项标识的组的访问权限,最后一位数字将指定每个人的访问权限别的。

如果这是您的个人系统并且没有其他用户需要访问 NTFS 文件系统,您可以使用该id命令来识别您的 UID 号,然后使用 mount options uid=<your UID here>,dmask=0077,fmask=0177。这将导致 NTFS 文件系统上的所有文件显示为您拥有并具有权限-rw-------,目录则显示为drwx------.

如果还有其他用户需要访问 NTFS 文件系统,您可以创建一个用于 NTFS 访问的组,将所有适当的用户添加到该组,然后在挂载选项中指定该组的 GID:uid=<your UID here>,gid=<NTFS access group GID here>,dmask=0007,fmask=0117。这将赋予组中的任何人与您相同的访问权限:文件-rw-rw----和目录drwxrwx---

或者,您可以保留自己的写入权限,但授予组成员只读权限:uid=<your UID here>,gid=<NTFS access group GID here>,dmask=0027,fmask=0137。这将导致-rw-r-----文件和drwxr-x---目录的权限。

或者,如果您想授予对多个用户帐户的完全访问权限并向其他人授予只读访问权限,则挂载选项将为:uid=<your UID here>,gid=<NTFS access group GID here>,dmask=0002,fmask=0113。这将导致-rw-rw-r--文件和drwxrwxr-x目录的权限。


除了使用挂载选项来指定 NTFS 文件和目录的权限之外,还可以创建一个用户映射文件将 Windows NTFS 安全 ID (SID) 映射到 Unix 样式的 UID 和 GID。甚至还有一个ntfsusermap工具可以帮助您创建该文件。创建映射文件后,您只需将其放入<root of NTFS filesystem>/.NTFS-3G/UserMapping,下次挂载文件系统时就会自动使用它。之后,真正的 NTFS 文件所有权和权限将在 Linux 中使用(如果适用),并且也可以使用chown/ chgrp/对其进行持久操作chmod

详情请参阅man ntfs-3g和。man ntfsusermap

如果您双启动 Linux 和 Windows,您可能需要Windows 命令行版本ntfsusermap并在运行 Windows 时生成用户映射文件。这可能会更容易,因为使用该工具的 Windows 版本,您可以看到实际的 Windows 用户名,而不仅仅是文件名及其关联的 SID。

即使您不需要 Windows 版本ntfsusermap,该页面也包含有关如何使用该工具的更详细说明,这对于 Linux 方面也可能有所帮助。

相关内容