Linux - 组成员无法删除具有 rw 权限的文件

use*_*765 16 linux permissions file-permissions

下面显示了一个文件,/tmp/testfileuser1拥有,组更改为还包括user2 的wheel。该文件具有该组的权限。那么该组的任何成员都不能删除它吗?下面的示例输出显示user2无法删除文件。为什么?rw

[user2@files ~]$ ls -l /tmp/testfile
-rw-rw-r-- 1 user1 wheel 0 Jul 18 18:54 /tmp/testfile
[user2@files ~]$ groups
user2 wheel
[user2@files ~]$  rm /tmp/testfile
rm: cannot remove `/tmp/testfile': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

use*_*686 32

首先,您查看了错误的权限。当您移动/重命名/删除文件时,您只是在修改父目录- 不会检查文件自己的权限。您只需从目录的文件列表中删除一个条目。因此,您应该检查父目录的权限(在本例中为/tmp)。

$ ls -ld /tmp
drwxrwxrwt 15 root root 460 Jul 19 15:18 /tmp/
Run Code Online (Sandbox Code Playgroud)

/tmp是特殊。在几乎所有系统上,任何人都可以写入 ( ugo=rwx),因此乍一看,似乎任何人都可以重命名或删除其中的任何文件。这当然会使为其他用户创建问题变得容易(甚至更容易),因此/tmp始终具有“粘性”又名“受限删除”模式集 ( o+t)。设置此模式后,只有文件所有者才能移动或删除该目录中的文件,而不管任何权限。

(在 GNU coreutils 上,chmod(1)手册页有一个关于“受限删除标志或粘滞位”的部分。)

  • 不仅文件所有者可以删除该目录下的文件,root 和目录的所有者(例如/tmp)也可以删除文件。 (2认同)