一、Sticky BIT
Sticky BIT称之为粘着位权限,也简称为SBIT。
SBIT目前仅针对目录有效,它的作用如下:
- 粘着位目前只对目录有效。
- 普通用户对该目录拥有w和x权限(其他人位要有7权限),即普通用户可以在此目录拥有写入权限。
- 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。
说明:
-
/tmp/
目录就有SBIT特殊权限
[root@localhost ~ ] # ll -d /tmp/
rwxrwxrwt.4 root root 4096 2月 19 12:24 tmp
看最后的其他人权限是rwt
- root用户在
/tmp/
目录创建一个abc文件
[root@localhost tmp] # touch abc
[root@localhost tmp] # ll
-rw-r--r-.1 root root 0 2月 19 12:40 abc
- user1用户在
/tmp/
目录创建一个bcd文件
[user1@localhost tmp]$ touch bcd
[user1@localhost tmp]$ ll
总用量0
-rw-r--r-.1 root root 0 2月 19 12:40 abc
-rw-rw-r-.1 userl user1 0 2月 19 12:40 bcd
- 用user1用户删除root用户(或者其他用户)在
/tmp/
目录中创建的abc文件,显示无法删除。
[user1@localhost tmp]$ rm -rf abc
rm:无法删除"abc":不允许的操作
以上例子说的就是在一个权限是777并且有
SBIT
特殊权限的目录中,每个用户只能删除自己创建的文件,其他用户创建的文件我们删除不了。
二、设定文件特殊权限
特殊权限这样来表示:
- 4代表SUID
- 2代表SGID
- 1代表SBIT
举例:
#赋予SUID权限
[root@localhost ~ ] # chmod 4755/u+s ftest
#赋予SGID权限
[root@localhost ~ ] # chmod 2755/g+s ftest
#SBIT只对目录有效,所以建立测试目录,并赋予SBIT
[root@localhost ~ ] # mkdir dtest
[root@localhost ~ ] # chmod 1755/o+t dtest/
三、文件特殊权限:SetUID,SetGID,Sticky BIT区别
- SUID:
只能针对执行程序 - SGID:
既可以针对执行文件,也可以针对目录文件。
针对目录是没有风险的,针对执行文件和SUID是一致的,都是有风险的。 - SBIT:
只能针对目录
可以看到这些权限都是针对普通用户的。