stick_bit    防删除位,防止别人删除自己的文件

注:它只作用于目录上,对文件没有什么意义


1、举例

[root@wy ~]# cd /tmp

[root@wy tmp]# mkdir 333

[root@wy tmp]# chmod 777 333

[root@wy tmp]# cd 333

[root@wy 333]# vi 12.txt

[root@wy 333]# cat 12.txt

;fjsfssfnvsf

lafsafsa;fs

sfksf

[root@wy 333]# ls -l 12.txt

-rw-r--r-- 1 root root 31 9月  20 22:53 12.txt

#切换到普通用户下

[root@wy 333]# su - wyy

[wyy@wy ~]$ cd /tmp/333

[wyy@wy 333]$ ls -l

总用量 4

-rw-r--r-- 1 root root 31 9月  20 22:53 12.txt

[wyy@wy 333]$ vi 12.txt

WEBRESOURCE143d9095e3973ca83ecd1ac6b65b4

WEBRESOURCEd9bc2060652729aa7ee0cfb6271b6

WEBRESOURCE46d483e9779aa4760f9b43d981893

WEBRESOURCE9c134fcaafbc00bba2b3db1d41389

[wyy@wy 333]$ cat 12.txt

;fjsfssfnvsf

lafsafsa;fs

sfksf

1234

1233

解释说明:

这样竟然修改了root用户的文件,按正常的话,它的所属主、所属组是root,而作为一个普通用户wyy竟然能够更改这个文件,这个貌似是不太可能实现的东西,再查看一下这个文件,它的所属主、所属组已经发生了改变。

[wyy@wy 333]$ ls -l 12.txt

-rw-r--r-- 1 wyy wyy 41 9月  20 22:59 12.txt

为什么可以把root用户的文件修改呢,原因在于它所在的父目录333是可写的

[wyy@wy 333]$ ls -ld .

drwxrwxrwx 2 root root 4096 9月  20 22:59 .

解释说明:

也就是说一个目录下的文件你能不能删除,不取决于这个目录下的文件的属主、属组、还有它的权限是什么;而在于这个文件所在的目录的权限是否可写;目录可写,也就意味着我们可以删除这个目录下的任何文件;所以说当一个目录的权限为其他人可读、可写、可执行的时候,那么其他人就可以删除这个目录下的任何的文件,包括root的文件;既然这样,说明我们的系统存在着一定的漏洞,这样的话,能删除root的文件,也就可以删除其他普通用户的文件,这样会非常没有安全感。


2、防止别人删除

[root@wy 333]# chmod o+t .

[root@wy 333]# ls -ld .

drwxrwxrwt 2 root root 4096 9月  20 22:59 .

[root@wy 333]# ls -l

总用量 4

-rw-r--r-- 1 wyy wyy 41 9月  20 22:59 12.txt

[root@wy 333]# cp 12.txt 33.txt

[root@wy 333]# ls -l

总用量 8

-rw-r--r-- 1 wyy  wyy  41 9月  20 22:59 12.txt

-rw-r--r-- 1 root root 41 9月  20 23:19 33.txt

#切换到普通用户下

[root@wy 333]# su - wyy

[wyy@wy ~]$ cd /tmp/333

[wyy@wy 333]$ ls

12.txt  33.txt

[wyy@wy 333]$ rm -rf 33.txt

rm: 无法删除"33.txt": 不允许的操作

说明:这就是加t权限的效果,防止其他用户删除自己的文件。