我们的一位用户错误地使用命令将一些系统目录(例如/lib)复制到她的主目录cp -r /lib .
,然后她无法删除这些目录。命令rm -rf ./lib
返回一个错误列表,显示“权限被拒绝”(我认为每个文件一个)。我确信复制和删除命令都使用相同的用户名,并且其间没有发生任何类型的权限更改。
我可能可以使用 root 权限删除这些目录,但我想知道为什么会发生这种情况。这是我们使用的Centos 6.8的bug吗?或者为什么用户无法删除她在主目录中创建的目录?
答案1
cp -r
默认复制权限模式。因此,如果/lib
不是所有者可写的,./lib
则也将不可写。尝试删除不可写目录的内容会被拒绝,即使您是该目录的所有者也是如此。您可以使用 修复权限chmod -R u+w ./lib
。
这是一个演示:
barmar@dev:~/test.dir$ mkdir subdir
barmar@dev:~/test.dir$ touch subdir/foo
barmar@dev:~/test.dir$ chmod a-w subdir
barmar@dev:~/test.dir$ cp -r subdir newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
rm: cannot remove `newsubdir/foo': Permission denied
barmar@dev:~/test.dir$ chmod a+w newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
barmar@dev:~/test.dir$