linux系统中的特殊权限之SBIT(Sticky BIT)


***linux系统中的特殊权限之SUID(Set UID)***
***linux系统中的特殊权限之SGID(Set GID)***
***linux系统中的特殊权限之SBIT(Sticky BIT)***

前言

之前,我用2篇文章分别展示了SUID和SGID的用法。今天,我接着之前的SGID来介绍今天的主角—SBIT。想对之前的SUID和SGID有所了解的朋友可以查看上面的3个相关链接。

SBIT(Set BIT)(粘滞位)

SBIT的作用

之前已经提到了,当一个目录对于属组可写(或者全局可写)时,组内的所有用户(或者所有其他用户)都可以在此该目录内创建新文件和删除所有的文件,这样的权限是致命的;如果此时我们为此类目录设置了SBIT权限,则属组内的每个用户(或者所有其他用户)都只能创建新文件和删除自己的文件,但是不能删除其他用户的文件。

实例讲解

默认情况(不使用SBIT)

当一个目录的属组拥有w权限后,属组中的用户可以在这个目录中创建文件;但是,这又一个重要的问题,那就是一个用户可以随意删除其他用户创建的文件。

  • #下面的示例中,用tom可以任意删除jerry创建的文件,这是非常危险的。
[tom@centos7u6 tmp]$ ls -ld /tmp/test_SGID/
drwxrwsr-x 2 root workgroup 58 Mar 30 17:38 /tmp/test_SGID/
[tom@centos7u6 tmp]$ ls -l /tmp/test_SGID/
total 16
-rw-rw-r-- 1 jerry workgroup 24 Mar 30 13:45 jerry2.test
-rw-rw-r-- 1 jerry jerry      6 Mar 30 13:27 jerry.test
-rw-rw-r-- 1 tom   workgroup 21 Mar 30 13:48 tom2.test
-rw-rw-r-- 1 tom   tom        4 Mar 30 13:14 tom.test
[tom@centos7u6 tmp]$ rm /tmp/test_SGID/jerry.test 
rm: remove write-protected regular file ‘/tmp/test_SGID/jerry.test’? y
[tom@centos7u6 tmp]$ ls -l /tmp/test_SGID/
total 12
-rw-rw-r-- 1 jerry workgroup 24 Mar 30 13:45 jerry2.test
-rw-rw-r-- 1 tom   workgroup 21 Mar 30 13:48 tom2.test
-rw-rw-r-- 1 tom   tom        4 Mar 30 13:14 tom.test

至此,最后一个特殊权限,SBIT隆重登场。

使用SBIT权限

  • #先为之前的/tmp/test_SGID目录设置SBIT,权限
    注意:此时目录的other的x权限位,变成了小t
[root@centos7u6 test_SGID]# chmod o+t /tmp/test_SGID/
[root@centos7u6 test_SGID]# ls -ld  /tmp/test_SGID/
drwxrwsr-t 2 root workgroup 58 Mar 30 17:38 /tmp/test_SGID/
  • #设置完成后,tom用户只能删除自己的文件,但是不能删除jerry的文件。这样,在提供了共享目录的同时,又在一定程度上保证了数据的安全性。
[tom@centos7u6 test_SGID]$ rm -rf /tmp/test_SGID/tom
tom2.test  tom.test   
[tom@centos7u6 test_SGID]$ rm -rf /tmp/test_SGID/tom.test 
[tom@centos7u6 test_SGID]$ rm -rf /tmp/test_SGID/jerry2.test 
rm: cannot remove ‘/tmp/test_SGID/jerry2.test’: Operation not permitted
[tom@centos7u6 test_SGID]$ ls -l /tmp/test_SGID/
total 8
-rw-rw-r-- 1 jerry workgroup 24 Mar 30 13:45 jerry2.test
-rw-rw-r-- 1 tom   workgroup 21 Mar 30 13:48 tom2.test

SBIT的用法

  • 第一种方法:
    chmod o+|-t DIRCTORYNAME
    • 设置权限:chmod o+t /tmp/test
    • 取消:chmod o-t /tmp/test
  • 第二种方法:
    使用8进制赋权
    • 设置权限:chmod 1755 /tmp/tet
    • 取消:chmod 755 /tmp/test
SUIDSGIDSBIT八进制权限
0000
0011
0102
0113
1004
1015
1106
1117

判断是否有SBIT权限

SBIT的权限展示位,在other用户的x权限位上。

  • 如果有SBIT
    • 属组原本有执行权限,则属组的执行权限位,显示为小t
    • 属组原本没有执行权限,则属组的执行权限位,显示为大写T
  • 如果没有SBIT
    • 属组的执行权限位,仍然按其基本权限,显示为x或者-

加点小料:/tmp目录

其实用linux系统的/tmp目录就是使用SBIT权限.
其中/tmp目录的基本权限为777,这保证了所有用户都可以在目录中创建和删除文件。
同时,由于/tmp设置了SBIT,所以保证了每个用户都只能删除自己的文件(老流氓root除外)

[root@centos7u6 test_SGID]# ls -ld /tmp
drwxrwxrwt. 11 root root 269 Mar 30 17:18 /tmp

使用SBIT的注意事项

  • SBIT权限只针对目录有效
  • 用户对该目录wx有效

转载于:https://www.cnblogs.com/Demon-Loong/p/10629399.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值