如何安装 NTFS 分区,以便我的计算机上的所有用户帐户都具有写入权限?我的安装选项是
nosuid,nodev,nofail,x-gvfs-show,nobootwait,uid=1000,gid=1002,fmask=113,dmask=002
这给了我写权限,但是当其他用户尝试删除文件时会弹出错误消息
Cannot move file to trash, do you want to delete immediately?
据我了解,这是因为他们没有写权限,而这正是我想要改变的。
我创建了一个新组(带有gid=1002
),并将其指定为两个用户帐户的主要组,但这没有帮助。我还尝试在不使用fmask
、dmask
和uid
选项的情况下进行安装。
答案1
据我了解,这是因为他们没有写权限,而这正是我想要改变的。
不,此错误消息并不意味着他们没有写入权限。如果他们没有写入权限,您将无法右键单击并“移至废纸篓”或“删除”文件,或使用键盘按钮Del。但是,既然您收到此错误,则意味着用户确实有访问权限。
经过两个小时的搜索并在我的计算机上重现此错误后,我发现了以下内容。
解释
权限(所有者、组所有者、文件和目录权限)在挂载时设置。只有所有者可以将文件移至废纸篓。为什么?因为当您将文件移至 NTFS 分区中的废纸篓时,会.Trash-<uid>
在分区的根目录中创建一个名为 的文件夹,其中<uid>
是uid
用户的 ,而文件夹的所有者将是尝试删除的用户。例如,如果用户名是daniels
, 是uid
1000 ,则会.Trash-1000
创建一个名为 的文件夹,daniels
将是所有者。
因此,如果daniels
是分区的所有者,他将能够正常执行此操作。但是,如果另一个用户(假设名为alaa
、 和uid=1001
)尝试删除某些内容,系统将尝试创建一个.Trash-1001
文件夹,其所有者为alaa
。但是在 NTFS 上,权限是在挂载时设置的(例如:设置为daniels
),并且任何文件的“所有者”都无法更改,因此系统无法创建文件.Trash-1001
夹,并向您提供提示Cannot move file to trash, do you want to delete immediately?
。
为了测试这一点,请尝试在名为 的分区的根目录中手动创建一个文件夹.Trash-1001
(所有者将设置为分区的所有者)。您会发现,Del在任何文件/文件夹上敲击键盘都不会产生任何反应,并且右键单击某个项目时的选项将从 变为Move to Trash
。Delete
我无法解释为什么它会变成Delete
,但这只是为了确定问题确实出在.Trash-1001
文件夹中。
在我看来,我将其归类为一个错误。
解决方案(软的...)
从您的 mount 命令中删除所有uid=
、gid=
、dmask=
、fmask=
和选项,然后添加,因此我猜您的行应该是这样的:umask=
permissions
nosuid,nodev,nofail,x-gvfs-show,nobootwait,permissions
我已经在我的计算机上尝试过这个,并且有效;使用 NTFS 硬盘时,两个用户都可以将其移至垃圾箱。
以下是一个演示:
alaa@aa-lu:~$sudo mount -o rw,权限/dev/sdc2 /media/he 使用默认用户映射 alaa@aa-lu:~$ls /媒体/他-la 共 104 drwxrwxrwx 1 root root 8192 9 月 24 日 21:20。 drwxr-xr-x 6 root root 4096 9 月 24 日 21:18 .. drwxrwxrwx 1 root root 4096 2012 年 12 月 15 日 我硬盘上的文件 drwxrwxrwx 1 root root 4096 7月 9 12:18 $RECYCLE.BIN drwx------ 1 root root 0 2012 年 1 月 22 日 系统卷信息
然后我使用我的用户名删除了一些东西alaa
,然后以另一个用户身份登录aaa
并删除了一些东西。 两者都可以删除,这就是 NTFS 分区的样子:
alaa@aa-lu:~$ls /媒体/他-la 共 104 drwxrwxrwx 1 root root 8192 9 月 24 日 21:20。 drwxr-xr-x 6 root root 4096 9 月 24 日 21:18 .. drwxrwxrwx 1 root root 4096 2012 年 12 月 15 日 我硬盘上的文件 drwxrwxrwx 1 root root 4096 7月 9 12:18 $RECYCLE.BIN drwx------ 1 root root 0 2012 年 1 月 22 日 系统卷信息 drwx------ 1 alaa alaa 0 9月24日 21:20 .Trash-1000 drwx------ 1 aaa aaa 0 9月24日 21:19 .Trash-1002
我不知道它是怎样做到这一点的,但它就是做到了。
我找到了这个页面:所有权和权限 | Tuxera解释了这一点,以及论坛帖子(http://www.tuxera.com/forum/viewtopic.php?f=2&t=27540) 有一些有用的信息。但不幸的是我还没有读过它们,所以我无法准确解释这个permissions
选项的作用。
我在本节标题中说“解决方案(有点......)”是因为现在您无法控制谁是分区的所有者,不是组所有者,也不是读写权限。但是,当使用该选项安装时permissions
,您可以看到“使用默认用户映射”,因此据我所知,可以创建一个“用户映射”以与一起使用permissions
,并且该映射将具有我们想要设置的所有者/权限。我还没有尝试使用permissions
以及uid=
所有其他选项进行安装(我发布的 Tuxera 链接应该可以解释这一点),但这也可能有效,通过控制所有者/权限并同时授予对垃圾箱的访问权限。
当我阅读这些链接时,我会更新我的答案。
答案2
尝试将其添加到您的 fstab:
UUID=<YourPartitionUUID> <YourMountPoint> ntfs-3g defaults,uid=1000,gid=46,utf8,dmask=000,fmask=111 0 0
(如果你没有ntfs-3g安装后,您可以尝试安装它,或者尝试使用NTFS。
答案3
感谢 Alaa Ali,添加了它对remount
我来说效果很好
sudo ntfsfix /dev/sdd2
修复 Windows 无法完全关闭
sudo mount -o rw,permissions,remount /dev/sdd2 /home/disk1