我创建了一个名为“shadi”的目录并为其设置了此权限
sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul 1 01:58 shadi
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我有“其他”权限,但为什么我不能删除它?
sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied
Run Code Online (Sandbox Code Playgroud)
roh*_*ith 33
这里的问题是您对该/home目录没有“w”权限。删除文件时请注意,您不是在写入该文件,而是在更改包含该文件的目录的内容,因此如果要从目录中删除任何文件,则必须对该目录具有“w”权限。
如果我在一个具有“w”权限的目录中,我可以删除它的任何文件而不必担心文件权限本身。请注意,我当前的目录/home/rohith具有“w”权限,因此无论文件权限如何,我都可以删除其任何文件。
如果在没有“w”权限的“/home”目录中创建了相同的文件,我会得到与您相同的输出!:)
Vid*_*uth 19
发生这种情况是因为您不拥有该目录,它归“root”和“root”组所有。因此,要删除它,您可以更改所有权然后将其删除(在这里您可以提升您的权利并成为获得所有权的“root”):
sudo chown $USER:$USER ./shadi
rm -r ./shadi
Run Code Online (Sandbox Code Playgroud)
或者您跳过所有权并创建一个sudo rm以提升您的权利并成为删除的“根”:
sudo rm -r ./shadi
Run Code Online (Sandbox Code Playgroud)