[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ groups martin
martin : martin wheel
我在我自己的主目录下:
[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ pwd
/home/martin/anaconda3
但是当我尝试删除自己目录中的文件时,我收到此错误:
[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ rm test2.ipynb
mv: cannot create regular file ‘/export/.trash/test2.ipynb’: Permission denied
这是为什么?
答案1
背景
您展示的第三个示例中,您尝试对rm
文件进行操作,该rm
命令看起来用一系列命令重载,其中一个命令尝试对mv
文件执行 a 操作/export/.trash
。
权限
[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ rm test2.ipynb mv:无法创建常规文件“/export/.trash/test2.ipynb”:权限被拒绝
查看权限/export/.trash/
:
$ ls -ld /export/.trash
所有内容都应归您的用户“martin”所有,以便该帐户可以删除文件并可以选择将mv
它们删除到该目录中。
我怀疑有人sudo
在这个目录中工作时使用了该命令,并且可能不小心设置了该目录的权限,.trash
以便 root 拥有它。
重载命令
关于您的rm
命令。您可以使用该命令检查它是否已被重载为别名或同名的 shell 函数type
。示例:
$ type -f rm
rm is aliased to `rm -i'
$ type -f mv
mv is aliased to `mv -i'
在这里我们可以看到mv
和rm
命令已作为mv -i
和 的别名重载rm -i
。
答案2
我同意输出rm
表明这rm
是一个别名或执行其他操作的函数,从路径名来看,它似乎尝试移动到垃圾目录而不是删除。
为了解决原来的问题,组 0 ( wheel
) 基本上没有任何意义。在基于 BSD 的系统上,su
(而不是sudo
)root 仅限于组成员wheel
,但这只是 BSD 上命令的功能su
,而不是操作系统本身的功能。
该sudo
命令通常在 Linux 上使用。它是高度可配置的。组 0 中的成员资格可以要求能够使用sudo
,但不会自动使用sudo
。