Linux Stick BIT(SBIT)文件特殊权限用法详解

Sticky BIT 意为粘着位(或粘滞位),也简称为 SBIT。它的作用如下:
粘着位目前只对目录有效。
普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录中拥有写入权限。
如果没有粘着位,那么,因为普通用户拥有 w 权限,所以可以删除此目录下的所有文件,包括其他用户建立的文件。一旦被赋予了粘着位,除了 root 可以删除所有文件,普通用户就算拥有 w 权限,也只能删除自己建立的文件,而不能删除其他用户建立的文件。

举个例子,默认系统中 /temp/ 目录拥有 SBIT 权限。
[root@localhost ~]# ll -d /tmp/
drwxrwxrwt 4 root root 4096 1月20 06:17 /tmp/

在其他人的 x 权限位,被 t 符号占用了,代表 /tmp/ 目录拥有 SBIT 权限。我们使用 lamp 用户在 /tmp/ 目录中建立测试文件 ftest,然后使用 lamp1 用户尝试删除。如果没有 SBIT 权限,而 /tmp/ 目录的权限是 777,那么 lamp1 用户应该可以删除 ftest 文件。

但是拥有了 SBIT 权限,会是什么情况?我们来看看:
[root@localhost ~]# useradd lamp
[root@localhost ~]# useradd lamp1
#建立测试用户lamp和lamp1,省略设置密码过程
[root@localhost ~]# su -lamp
#切换为lamp用户
[lamp@localhost ~]$ cd /tmp/
[lamp@localhost tmp]$ touch ftest
#建立测试文件
[lamp@localhost tmp] l l f t e s t r w r w r 1 l a m p l a m p 01 2006 : 36 f t e s t [ l a m p @ l o c a l h o s t t m p ] ll ftest -rw-rw-r-- 1 lamp lamp 01月20 06:36 ftest [lamp@localhost tmp] su - lamp1
密码:
输入lamp用户的密码
#切换成lamp1用户
[lamp1 @localhost ~]$ cd /tmp/
[lamp1 @localhost tmp]$ rm -rf ftest
rm:无法删除"ftest":不允许的操作
#虽然/tmp/目录的权限是777,但是拥有SBIT权限,所以lamp用户不能删除其他用户建立的文件

猜你喜欢

转载自blog.csdn.net/zyy1659949090/article/details/88176535