Linux特殊权限SUID、SGID和SBIT管理

一、SUID

    文件的属主/所有者的权限位的执行权限位s,该文件就拥有了特殊权限SUID。

    当一个文件设置了SUID后,某个用户执行这个文件时其实是以文件所有者(属主)的身份来运行。暂时切换身份。

[root@Rainbow bin]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33600 47 2020 /usr/bin/passwd
# 用户执行passwd修改自身密码时,本质上是以root身份执行该命令,这样才能修改/etc/shadow
# 设置SUID
chmod u+s	# 添加
chmod u-s	# 取消
# suid的数字代号为4000,比如4764等价于rwsrw-r--

    SUID作用:临时身份切换

(1) 让普通用户对可执行的二进制文件拥有临时的文件所有者权限;
(2) 如果设置的二进制文件没有执行权限,那么suid的权限会显示为大写的S;
(3) 特殊权限仅对二进制可执行程序有效,其他文件或目录则无效。

二、SGID

    将目录设置sgid后,如果在该目录下创建文件或目录,新建的文件所在的组都将与该目录所属组保持一致。sgid表现在文件所属组的执行权限位,用小写s表示。

# 设置SGID
chmod g+s	# 添加
chmod g-s	# 取消
# sgid的数字代号为2000,比如2775等价于rwxrwsr-x
# 创建测试目录
[root@Rainbow tmp]# mkdir /tmp/test && ll | grep 'test'
drwxr-xr-x 2 root root  6 Dec  8 13:49 test
# 修改目录所属组
[root@Rainbow tmp]# chown .zq /tmp/test -R | ll | awk '/test/'
drwxr-xr-x 2 root zq    6 Dec  8 13:49 test
# 为目录设置sgid
[root@Rainbow tmp]# chmod g+s /tmp/test | ll | grep 'test'
drwxr-sr-x 2 root zq    6 Dec  8 13:49 test
[root@Rainbow test]# cd /tmp/test/
# 测试
[root@Rainbow test]# ll
total 0
[root@Rainbow test]# touch myfile.txt && ll | grep 'myfile.txt'
-rw-r--r-- 1 root zq 0 Dec  8 13:56 myfile.txt
[root@Rainbow test]# mkdir mydir && ll | grep 'mydir'
drwxr-sr-x 2 root zq 6 Dec  8 13:59 mydir

    SGID作用:资源共享

(1) 当某个目录设置sgid后,在该目录中新建的文件不再是以往创建文件的默认所属组,用户在该目录创建的目录或文件的所属组与该目录的所属组一致;
(2) 使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。使用sgid可以让创建的文件或目录自动的归属与某个指定的组。

三、SBIT

    Sticky粘滞位目前只对当前目录有效。

    某个目录被赋予粘滞位后,除了root之外,该目录里面的文件,普通用户就算拥有对该目录的w权限,也只能删除自己建立的文件,而不能删除其他用户建立的文件。粘滞位表现在others的执行权限位,用小写t表示。

# 设置粘滞位
chmod o+t
chmod o-t
# sbit的数字代号为1000,比如1775等价rwxrwxr-t
# 粘滞位目录,其他人的执行权限是t
[zqTest@Rainbow tmp]$ ll -d /tmp
drwxrwxrwt. 14 root root 4096 Dec  8 14:58 /tm

# 用户zqTest创建文件
[zqTest@Rainbow tmp]$ touch sbit_test && ll | grep "sbit"
-rw-rw-r-- 1 zqTest zqTest  0 Dec  8 14:56 sbit_test
# 修改文件所属组
[root@Rainbow tmp]# chown .zq sbit_test && ll | grep sbit
-rw-rw-r-- 1 zqTest zq    0 Dec  8 14:56 sbit_test
# 用户zq删除文件
[zq@Rainbow tmp]$ rm sbit_test 
rm: 无法删除'sbit_test': 不允许的操作
# 用户zqTest删除文件
[zqTest@Rainbow tmp]$ rm sbit_test -f
[zqTest@Rainbow tmp]$ ll | grep 'sbit'

    SBIT作用:限制删除权限,用户只能删除自己的文件

(1) 特殊sticky目录表现在others的x位,用小写t表示,如果没有执行权限则表现为T;
(2) 即使多个用户对sticky目录有w权限,也只能删除自己在sticky目录下创建的文件。root除外。

四、chattr 和 lsattr 用于凌驾于root之上的权限设置
chattr [+-=] [选项] 文件或目录
# a 让文件或目录仅仅可以追加内容
# i 不能随意更动文件或目录
# 即使是root超管权限也不能。
[root@Rainbow ~]# touch chattr_test
[root@Rainbow ~]# chattr +a chattr_test 
[root@Rainbow ~]# lsattr chattr_test -l
chattr_test                  Append_Only
[root@Rainbow ~]# lsattr chattr_test 
-----a-------------- chattr_test
[root@Rainbow ~]# chattr +i chattr_test 
[root@Rainbow ~]# lsattr chattr_test -l
chattr_test                  Immutable, Append_Only
[root@Rainbow ~]# lsattr chattr_test 
----ia-------------- chattr_test
[root@Rainbow ~]# chattr -ia chattr_test 
[root@Rainbow ~]# lsattr chattr_test 
-------------------- chattr_test
[root@Rainbow ~]# lsattr chattr_test -l
chattr_test                  ---
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值