Linux-SUID,SGID与SBIT半解

SUID

  • SUID 权限 仅对二进制可执行文件有效
  • 如果执行者对于该二进制可执行文件具有 x 的权限 ,执行都将具有该文件的所有者权限
  • 本权限仅在执行该二进制文件的过程中有效;
[mac@centos ~]$ ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[mac@centos ~]$ ll /etc/shadow
----------. 1 root root 1384 4月  20 12:51 /etc/shadow

  • 普通 用户tester 利用SUID权限 完成密码修改的过程:
  • tester 普通 用户对于 /usr/bin/passwd这个程序具有执行权限 因此可以执行
  • passwd 程序的所有者是 root
  • tester 用户在执行passwd过程中暂时拥有root权限
  • 因此terter 用户在执行passwd程序的过程中可以修改 /etc/shadow

在这里插入图片描述

SGID

  • 当s标志出现 在用户组的 x 权限 位时为SGID

  • 在这里插入图片描述

  • SGID 可以用在目录上,当一个目录设置了SGID权限 后,它具有以下功能

    • 用户若对此目录具有 r 和 x 权限 ,该用户能够进入该目录。
    • 用户在此目录下的有效用户组将变成该目录的用户组
    • 若用户在此目录下拥有 w 权限 ,则用户所创建的新文件的所属用户组也该目录的用户组相同。
    • PS 当SGID作用于普通 文件时和SUID类似,在执行文件时,用户将获得该文件所属组的权限
    • PS 当SGID 作用于目录时,当用户对目录有写和执行权限 时该用户就可以在该目录下建立 文件,但新建立的文件的所属组是这个目录的所属组而不是这个用户的所属组。

    SBIT

    • SBIT 目前只对目录有效,用来阻此非文件的所有者删除文件。
    • 权限 信息中最后一位 t 表明该目录被设置了SBIT 权限 。SBIT 对目录的作用是:当用户在该目录下创建的新文件或目录时,仅自己和 root 有权力删除 。
    • SBIT 对文件不起作用。

设置SUID ,SGID,SBIT权限

  • 以数字的方式设置权限
  • SUID ,SGID,SBIT 权限 对应的数字如下

    SUID ==> 4
    SGID ==> 2
    SBIT ==>1

[root@centos ~]# mkdir filename
[root@centos ~]# ll
drwxr-xr-x. 2 root root 6 4月  21 16:46 filename
[root@centos ~]# chmod 4755 filename 
[root@centos ~]# ll 
drwsr-xr-x. 2 root root 6 4月  21 16:46 filename
  • 同理 可以用 2 和 1 来设置SGID 和SBIT权限

  • 其实,还可能出现 S 和 T 的情况。S 和 t 是替代 x 这个权限的,但是,如果它本身没有 x 这个权限,添加 SUID、SGID、SBIT 权限后就会显示为大写 S 或大写 T。比如我们为一个权限为 666 的文件添加 SUID、SGID、SBIT 权限。

  • 删除特殊权限

    • 如上例 可以 chmod 755 filename这样就恢复了
    • 还可以 chmod u-s filename这样也是删除
    • $ chmod u+s testfile # 为 testfile 文件加上 SUID 权限。
      $ chmod g+s testdir # 为 testdir 目录加上 SGID 权限。
      $ chmod o+t testdir # 为 testdir 目录加上 SBIT 权限。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值