粘滞位(SBIT)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Pg_dog/article/details/67147675

一.什么是粘滞位?
粘滞位(stickybit),又称黏着位,是Linux文件系统权限的一个特殊权限(有三个:SUID,SGID,SBIT)。最常见的用法是在目录(只能是目录,文件无效)上设置粘滞位,如此一来,只有目录内文件的所有者或者root才可以删除或移动文件。如果不为目录设置粘滞位,任何具有该目录写和执行的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录(在Linux系统中较典型的例子就是“/tmp”、 “/var/tmp”?录。这两个目录作为Linux系统的临时文件夹,权限为“rwxrwxrwx”,即允许任意用户、任意程序在该目录中进行创建、删除、移动文件或目录等操作),以防普通用户删除或移动其他用户的文件。
下面我来举个案例,大家看一看如果你对你创建的目录文件不加以保护,会出现什么后果。
1,以root登录系统,进入/tmp中;
2,mkdir mydir ,并且设其权限为777;
3,cd mydir ,并创建文件file;
4,以普通用户登录,并进入/mydir;
5,rm file,尝试删除这个目录文件;
这里写图片描述

           图1,文件被其他用户删除(未设置粘滞位)

上面这个案例给我们敲响了警钟,虽然该文件的权限是644,其他用户不能对其进行除了读以外其他任何操作,但是其他用户(上面例子指普通用户)还是删除了它。如果你想你创建的目录文件不想被其他用户删除,你就需要用粘滞位来保护你创建的目录文件不被操作。
二,如何设置粘滞位?
在上面案例的基础之上,我们来在原有的mydir(权限为777)目录下,新创建一个file文件,并通过“chmod o+t mydir”将mydir设置成粘滞位,进入普通用户模式下,再次对file进行删除操作,结果你会发现删除不了。见图2:

这里写图片描述

           图2,设置粘滞位后的文件不会被删除

这里再补充几点
1,与之对应的去除粘滞位指令是“chmod o-t file”。见图3:

这里写图片描述

                 图3,去除粘滞位指令

2,也可以通过“chmod 1xxx test”指令设置粘滞位。见图4:

这里写图片描述

                  图4,设置粘滞位

3,与之对应的去除粘滞位指令是“chmod xxx test”。见图5:

这里写图片描述

                    图5,去除粘滞位

4,如果其他人无x(可执行)权限时,设置粘滞位后,最后一位出现的是大写的‘T’,它代表的就是“空的”。见图6:

这里写图片描述

                 图6,大写‘T’代表为空

5, 当用户在该目录下创建文件或目录时,仅有自己和root才有权删除该文件。

猜你喜欢

转载自blog.csdn.net/Pg_dog/article/details/67147675
今日推荐