根据我的理解,这是因为他们没有写入权限,而我想要改变这一点。
不,这个错误信息并不意味着他们没有写入权限。如果他们没有写入权限,你将无法右击并选择“移至回收站”或“删除”文件,也不能使用键盘上的
Del按键。但由于你遇到了这个错误,说明用户确实有访问权限。
经过两小时的搜索,并在我的电脑上重现了这个错误,我找到了以下解释。
权限(所有者、群组所有者、文件和目录的权限)是在挂载时设置的。只有所有者才能将文件移动到回收站。为什么?因为当你将文件移动到NTFS分区的回收站时,会在分区的根目录下创建一个名为
.Trash-
的文件夹,其中是用户的uid,并且文件夹的所有者将是试图删除的用户。例如,如果用户名是
daniels
并且uid是1000,则会创建一个名为
.Trash-1000
的文件夹,而
daniels
将成为该文件夹的所有者。
所以,如果daniels是该分区的所有者,他将能够正常执行此操作。然而,如果另一个用户(假设称为alaa,uid=1001)尝试删除某些内容,系统会尝试创建一个.owner alaa的.Trash-1001文件夹。但是,在NTFS上,权限在挂载时设置(例如:它被设置为daniels),并且任何文件的“所有者”都无法更改,因此系统无法创建.Trash-1001文件夹,会提示你“无法将文件移动到回收站,是否立即删除?”
为了测试这个问题,试着在分区的根目录下手动创建一个名为
.Trash-1001
的文件夹(所有者将被设置为分区的所有者)。你会发现,在键盘上按下
Del键对任何文件/文件夹都不会有任何反应,而右键单击项目时的选项将从
Move to Trash
变为
Delete
。我无法解释为什么会变成
Delete
,但这只是为了确认问题确实出现在
.Trash-1001
文件夹中。
在我看来,我认为这是一个错误。
解决方案(软性解决):
从挂载命令中删除所有的
uid=
、
gid=
、
dmask=
、
fmask=
和
umask=
选项,并添加
permissions
,所以我猜你的命令应该像这样:
nosuid,nodev,nofail,x-gvfs-show,nobootwait,permissions
我在我的电脑上尝试过这个方法,它有效;使用NTFS硬盘时,两个用户都可以将文件移动到垃圾箱。
以下是演示:
alaa@aa-lu:~$ sudo mount -o rw,permissions /dev/sdc2 /media/he
使用默认用户映射
alaa@aa-lu:~$ ls /media/he -la
总用量 104
drwxrwxrwx 1 root root 8192 Sep 24 21:20 .
drwxr-xr-x 6 root root 4096 Sep 24 21:18 ..
drwxrwxrwx 1 root root 4096 Dec 15 2012 Files on my hard disk
drwxrwxrwx 1 root root 4096 Jul 9 12:18 $RECYCLE.BIN
drwx------ 1 root root 0 Jan 22 2012 System Volume Information
然后,我使用我的用户名
alaa
删除了一些东西,然后以另一个用户
aaa
登录并删除了一些东西。两者都能够删除,这就是NTFS分区的情况。
阿拉@aa-lu:〜$ ls /media/he -la
总计 104
drwxrwxrwx 1 root root 8192 Sep 24 21:20 .
drwxr-xr-x 6 root root 4096 Sep 24 21:18 ..
drwxrwxrwx 1 root root 4096 Dec 15 2012 我硬盘上的文件
drwxrwxrwx 1 root root 4096 Jul 9 12:18 $RECYCLE.BIN
drwx------ 1 root root 0 Jan 22 2012 系统卷信息
drwx------ 1 alaa alaa 0 Sep 24 21:20 .Trash-1000
drwx------ 1 aaa aaa 0 Sep 24 21:19 .Trash-1002
我不知道它是如何做到的,但它就是这样。
我找到了这个页面:
所有权和权限 | Tuxera,它解释了这个问题,还有一个论坛帖子(
http://www.tuxera.com/forum/viewtopic.php?f=2&t=27540),里面有一些有用的信息。不过,很遗憾我还没有阅读它们,所以无法准确解释这个
permissions
选项的作用。
我在这个部分的标题中说“解决方案(某种程度上)”,是因为现在你不再控制谁是分区的所有者,也不是组所有者,也不是读写权限。但是,当使用
permissions
选项挂载时,你可以看到一个“使用默认用户映射”,所以据我理解,有一个“用户映射”可以创建并与
permissions
一起使用,该映射将具有我们想要设置的所有者/权限。我还没有尝试过使用
permissions
和
uid=
以及所有其他选项进行挂载(我发布的Tuxera链接应该会解释这一点),但这可能也有效,既可以控制所有者/权限,又可以访问回收站。
当我阅读那些链接后,我会更新我的答案。
fmask
和dmask
,而是添加umask=001
。这基本上给了每个人访问权限,除了"其他人"的执行权限。 - Alaa Aliuid
、gid
、dmask
、fmask
和umask
选项,然后只需加入名为permissions
的选项。这样你就能和其他用户一样将文件移动到垃圾箱了。 - Alaa Ali