无法删除具有文件模式位 a+rw 的文件

hab*_*713 8 linux permissions chmod rm chown

我有一个具有以下文件模式位 ( a+rw) 的文件:

[0] mypc<johndoe>:~>sudo touch /tmp/test    
[0] mypc<johndoe>:~>sudo chmod a+rw /tmp/test
[0] mypc<johndoe>:~>ls -l  /tmp/test
-rw-rw-rw- 1 root root 0 Mar 13 11:09 /tmp/test
Run Code Online (Sandbox Code Playgroud)

为什么我不能删除文件?

[0] mypc<johndoe>:~>rm /tmp/test
rm: cannot remove '/tmp/test': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

小智 13

/tmp目录通常标有限制删除标志,该标志作为许可信tTls输出中出现。

受限删除意味着几件事。在一般情况下,这意味着只有文件的所有者或/tmp它自己的所有者才能删除/tmp.

您不能删除该文件,因为您不是所有者,即root. 尝试运行rmsudo你可能忘了。

sudo rm /tmp/test
Run Code Online (Sandbox Code Playgroud)

更具体地说到Linux独自一人,限制删除标志(在世界可写目录如/tmp使得protected_symlinksprotected_hardlinksprotected_regular,和protected_fifos限制,这在这样的目录分别防止用户以下符号链接,他们没有自己的,防止用户进行硬链接到他们不拥有的文件,防止用户打开他们不拥有的 FIFO,并防止用户在他们希望创建它们时打开他们不拥有的现有文件。

这将做进一步的各种事情时有权限的错误,你感到惊讶root,当你做的使用sudo

有关这些问题的更多信息,例如“ CentOS 6 和 CentOS 7 之间的硬链接权限行为不同”、“更改用户时符号链接未按预期工作”和“ root 的组权限在 /tmp 中不起作用”。

  • 可能还值得强调一个基本点,即删除文件取决于其 _directory 的_权限,而不是 _file 的_权限? (5认同)

hab*_*713 6

问题似乎是/tmp.

$ ls -ld /tmp
drwxrwxrw t ? 1 根 1044 Mar 13 12:09 /tmp

https://en.wikipedia.org/wiki/Sticky_bit

当设置目录的粘滞位时,文件系统会以特殊方式处理此类目录中的文件,因此只有文件的所有者、目录的所有者或 root 用户才能重命名或删除文件。如果没有设置粘滞位,任何对目录具有写入和执行权限的用户都可以重命名或删除包含的文件,而不管文件的所有者如何。通常这是在 /tmp 目录中设置的,以防止普通用户删除或移动其他用户的文件。