无法在已安装的 ntfs 分区上 chown、chmod

无法在已安装的 ntfs 分区上 chown、chmod

我需要挂载一个 ntfs 分区并能够以 unix 文件系统权限使用它。问题是,当我使用以下 fstab 条目挂载分区时,我无法成功运行 chown 和 chmod。它执行时没有错误,但文件访问权限没有更改。

PARTUUID=c3e3b171-d451-44e6-9f17-ffbe9e220dc7   /mnt/mounted_drive  ntfs-3g  defaults,umask=0022,uid=1000,gid=1000,errors=remount-ro,permissions 0 2

当我挂载分区而不设置 umask、uid 和 gid 时,我可以成功使用前面提到的命令。

PARTUUID=c3e3b171-d451-44e6-9f17-ffbe9e220dc7   /mnt/mounted_drive  ntfs-3g  defaults,errors=remount-ro,permissions 0 2

我该怎么做才能正确安装分区?

答案1

对于 NTFS-3G,只有当存在包含目标用户/组映射的 UserMapping 文件时,才可以设置所属用户和组。文档中并不清楚这一点,但我刚刚对其进行了测试,这就是正在发生的情况。

如果不需要与现有 Windows 安装兼容,请.NTFS-3G/UserMapping在已安装的分区上创建一个空文件并通过以下方式填充:

getRUI4() { od -An -N4 -tu4 /dev/random | tr -d ' '; }
USERMAPPING=/media/NTFS_PARTITION/.NTFS-3G/UserMapping
echo ":users:S-1-5-21-$(getRUI4)-$(getRUI4)-$(getRUI4)-513" | sudo tee -a $USERMAPPING >/dev/null
echo "$(id -un):$(id -gn):S-1-5-21-$(getRUI4)-$(getRUI4)-$(getRUI4)-1001" | sudo tee -a $USERMAPPING >/dev/null

如果您想使用现有的 Windows SID,则可以ntfsusermap在未挂载 (!) 的分区上使用该程序,该分区会以交互方式要求您指定用户名和组名(不需要是数字,无论消息如何)给定路径,它首先在其中找到尚未映射的 ID。这很快就能做到。

默认情况下,用户和组root是映射的,如下所示other。上面的行将为users组和当前用户创建映射。根据需要重复。

另外,就我而言,我使用以下选项安装驱动器

no_def_opts,allow_other,acl,nodev,nosuid,big_writes,hide_dot_files

然而,在你的情况下,你不应该需要它们中的任何一个,尽管我发现这些选项在默认值的基础上有所改进,否则例如chown/chmod在出现错误时会默默地失败。

相关内容