为什么我可以在非root用户下删除属于“root”的文件?

为什么我可以在非root用户下删除属于“root”的文件?

我在我的用户下创建一个文件esolve ,然后su root 使用 chown 将其用户更改为 root 然后我返回到用户esolve 我注意到我仍然可以删除该文件,rm 为什么?

答案1

是否可以创建、重命名和删除文件并不取决于该文件的所有权和访问权限,而是取决于父目录的所有权和访问权限。

如果您对该目录具有写访问权限(在正常情况下,richacl 会更复杂),那么您可以执行此操作。例外的是具有粘性位(“其他”的“SUID”/“SGID”位,请参阅 参考资料man chmod)的目录,其设置与/tmp通常一样。在此类目录中,只有目录所有者或文件所有者可以执行此操作,其他具有写访问权限的用户则不能。

答案2

因为你可以删除该文件,所以如果你可以读取该文件,实际上你就拥有了“修改权限”

假设您有一个名为foo“拥有者”的文件root,并且该文件可由(每个人)读取you,位于“拥有者”的目录下you

-rw-r--r-- 1 root    root    4 May 11 12:34 foo
drwxr-xr-x 2 you     root 4.0K May 11 12:34 ./

将该文件复制到新文件:

$ cp foo 酒吧

-rw-r--r-- 1 root    root       4 May 11 12:34 foo
-rw-r--r-- 1 you     you        4 May 11 12:36 bar
drwxr-xr-x 2 you     root       4.0K May 11 12:36 ./

将文件“bar”编辑为您喜欢的任何内容

将“bar”移至“foo”

$ mv 酒吧 foo

-rw-r--r-- 1 you     you        4 May 11 12:36 foo

现在您有了同名的新文件,但所有者当然不同。但这里的重点是内容已更改

您没有修改权限,但可以重命名/移动/rm。这样的设计实在是受不了!!

相关内容