我有一个 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
Run Code Online (Sandbox Code Playgroud)
我得到 d--x--x--x 分区的挂载目录。我可以去目录:
cd /ntfsPartition
Run Code Online (Sandbox Code Playgroud)
但我无法阅读内容:
ls /ntfsPartition
ls: cannot open directory '.': Permission denied
Run Code Online (Sandbox Code Playgroud)
提前致谢!
tel*_*coM 11
该x
标志对于目录是必需的,以便访问它们的内容。
仅通过r
目录上的标志,您可以获得目录列表,但无法访问其中的文件和子目录。仅x
使用目录上的标志,您将看不到目录列表,但如果其权限允许,您可能能够访问文件和子目录,并且您可以指定您尝试访问的内容的确切名称。因此,在大多数情况下,对于目录,您只有两个通常有用的权限选择:r-x
和rwx
。
因此,由于umask
挂载选项适用于文件和目录,并且您不想x
在文件上使用标志,因此您只需要使用fmask
and dmask
only,这样您就可以对文件设置一组权限,对目录设置另一组权限。
权限和对应的掩码编号:
rwx
= 掩码编号 0rw-
= 掩码编号 1(对目录不是很有用)r-x
= 面具号码 2r--
= 面具号码 3-wx
= 掩码编号 4(特殊情况:“只写目录”的近似值)-w-
= 掩码 5(对目录不是很有用)--x
= 掩码编号 6(对于目录:仅通过已知文件名访问)---
= 掩码编号 7(无访问权限)如果你想除了全面进入目录,一切x
标志的文件,你会为相应的需要0dmask
号和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
。这将为组中的任何人提供与您相同的访问权限: files-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 时获取Windows 命令行版本ntfsusermap
并生成用户映射文件。这可能更容易,因为使用该工具的 Windows 版本,您可以看到实际的 Windows 用户名,而不仅仅是文件名及其关联的 SID。
即使您不想要 Windows 版本的ntfsusermap
,该页面也包含有关如何使用该工具的更详细的描述,这可能对 Linux 方面也有帮助。