rm:无法删除目录/:权限被拒绝


17

我创建了一个名为“ shadi”的目录,并为其设置了此权限

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

在这种情况下,我具有“其他”权限,但是为什么不能删除它?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied

Answers:


25

这里的问题是您对/home目录没有“ w”权限。在删除文件时,请注意,您不是在写该文件,而是在更改包含该文件的目录的内容,因此,要从目录中删除任何文件,必须具有目录的“ w”权限。

“ ls -ld / home”的终端屏幕截图

如果我位于具有“ w”权限的目录中,则可以删除其任何文件而不必担心文件权限本身。请注意,我当前的目录/home/rohith具有“ w”权限,因此无论文件权限如何,我都可以删除其任何文件。

删除/ home / rohith / shadi的终端屏幕截图

如果在没有“ w”权限的“ / home”目录中创建了相同的文件,我将得到与您相同的输出!:)

尝试删除/ home / shadi的终端屏幕截图


9

发生这种情况是因为您不拥有该目录,而是由“ root”和“ root”组拥有。因此,要删除它,您可以更改所有权然后再将其删除(在这里您提升了权限并成为拥有所有权的“根”):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

或者,您跳过获取所有权并进行sudo rm权限提升以成为删除的“ root”:

sudo rm -r ./shadi

这意味着只有所有者才能删除文件?
Sinoosh '16

是的,或者您需要使用该sudo命令提升权限。这将要求您输入密码,然后您成为以下特定命令的“ root”用户。
Videonauth

如果“ shadi”是一个文件,您现在可以吗?我可以用“ sinoosh”用户将其删除。它不需要“ sudo”,这对我来说不成问题,为什么它不能与目录一起使用
Sinoosh 2016年

6

尝试这个:

sudo rm -r ./shadi

权限显示所有者root和组root,因此您必须使用sudo。


1
是的,此命令是可以的,但是我的问题是为什么rm无法使用此权限,我在其他字段中对此目录拥有完全权限
Sinoosh '16

“我对此目录具有完全权限”不,您没有。“其他领域”沙迪不是“其他”。
Rinzwind '16

但“ sinoosh”属于他人,他执行“ rm -r shadi”
Sinoosh '16

0

这是不同的帐户。

如果每个人都有权删除您的主目录,您如何期望帐户安全?

w默认情况下,您无权删除其他人的主目录,除非他们删除chmod +w了。

这是不同的权限,以及一个示例(-rwxr-x---/ rwxrx):

+-+-+-+-+
| + | u | g | o |
+-+-+-+-+
| r | 1 | 1 | 1 |
+-+-+-+-+
| w | 2 | 2 | 2 |
+-+-+-+-+
| x | 4 | 4 | 4 |
+-+-+-+-+
| * | 7 | 5 | 0 |
+-+-+-+-+
它是这样的:1 + 2 + 4 = 71 + 4 = 50 = 0,所以750,即理想的许可制度。所有者(u在这种情况下)可以读取,写入和执行文件,所有者的组(g在这种情况下)可以读取和执行,其他任何人(o在这种情况下)都不能做任何事情。这是传说中的:
u:当前用户(User)
g:当前用户的组(Groups)
o:不是当前用户的组(其他)
r:读取权限(Read)
w:写权限(写)
x:执行权限(X-ecute)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.