Linux:以其他和组身份删除文件

Linux:以其他和组身份删除文件

这个问题应该被问一百万次,但我找不到正常的答案。

用户是群组成员管理员

我以root身份创建

# touch /tmp/keyboard-backlight.on 
# chmod 666 /tmp/keyboard-backlight.on 
# chgrp adm /tmp/keyboard-backlight.on 
# chgrp adm /tmp/
# echo "text"  > /test.txt
# chmod 0666  /test.txt

作为用户

user@host ~ $ rm /tmp/keyboard-backlight.on 
rm: cannot remove '/tmp/keyboard-backlight.on': Operation not permitted
user@host ~ $ rm /test.txt 
rm: cannot remove '/test.txt': Permission denied

为什么我无法删除该文件?

答案1

删除和创建文件需要包含该文件的目录的写权限。

对于/,它属于root,并且它对组或其他人没有“写”权限。因此只能root删除那里的文件,而不管文件的权限如何。

$ ls -ld /
drwxr-xr-x 24 root root 4096 Nov  3 19:21 /

关于/tmp,该文件夹通常启用粘滞位。看Linux 权限:SUID、SGID 和粘滞位

最后一个特殊权限被称为“粘性位”。此权限不会影响单个文件。但是,在目录级别,它限制文件删除。只有所有者(和) 文件可以删除该目录中的文件。一个常见的例子是/tmp目录:

[tcarrigan@server article_submissions]$ ls -ld /tmp/ 
drwxrwxrwt. 15 root root 4096 Sep 22 15:28 /tmp/

权限集用小写字母表示t,其中X通常会指示执行权限。

相关内容