stick_bit - o的特殊权限

stick_bit:防删除位。

文件能否被用户删除,主要取决于文件所在的目录是否对该用户有写权限,如果没有,这个目录下的文件该用户无法删除,同时也不能创建新的文件。如果希望用户在一个目录下只能创建,不能删除文件(用户自己创建的文件自己可以删除),就可以设置stick_bit位。设置完后,用户在目录下有写权限但是不能删除其他用户创建的文件。

  • 只有文件的创建者和root可以删除。

  • 删除一个文件看的是文件所在目录的操作权限,不是文件本身的权限。

语法

$ chmod o+t file    #添加stick_bit位
$ chmod o-t file    #删除stick_bit位

实例

目录/tmp/默认带有stick_bit位,只有root用户可以删除文件。

[root@lwz01 lwz]# ll -d /tmp/
drwxrwxrwt. 10 root root 4096 Aug 25 14:07 /tmp/

使用普通用户lwz/tmp/下创建/22/3.txt文件并改成777权限。

[lwz@lwz01 tmp]$ mkdir 22
[lwz@lwz01 tmp]$ touch 22/3.txt
[lwz@lwz01 22]$ chmod 777 3.txt

切换到另一个普通用户lwz2,发现虽然有rwx权限,但只能修改3.txt,不能删除。

[lwz2@lwz01 22]$ ll
total 0
-rwxrwxrwx 1 lwz lwz 0 Aug 25 14:28 3.txt
[lwz2@lwz01 22]$ echo 11 >> 3.txt 
[lwz2@lwz01 22]$ cat 3.txt 
11
[lwz2@lwz01 22]$ rm 3.txt 
rm: cannot remove ‘3.txt’: Permission denied