linux权限体系(三)特殊权限SUID、SGID和SBIT的案例解析

一、SUID

1.1 基础知识
  1. SUID 是针对二进制可执行文件而言的,他的最终目的是所有用户在执行设置了SUID的二进制可执行文件时,该二进制拥有的权限是文件所有者的权限。(打破安全上下文法则)。
  2. 案例理解
[root@tysonscloud ~]# ls -l /bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /bin/passwd
[root@tysonscloud ~]# ls -l /etc/shadow
---------- 1 root root 948 Jan 29 15:25 /etc/shadow

用户用passwd命令修改密码是对/etc/shadow这个文件进行操作,然而普通用户对这个文件是没有任何权限的。按照从前的理论是没有办法对密码进行修改的。而SUID的作用就是使得普通用户在执行passwd这个程序后,产生的passwd进程的权限与该进程的所有者(root)而不是发起者(普通用户) 相同,这样普通用户就可以通过/etc/passwd这个程序进行密码修改了。

1.2 安全上下文法则
  • 程序启动前:用户是否能够启动某二进制可执行文件为进程,取决于用户是否对该二进制可执行文件拥有x权限。
  • 程序启动:进程拥有的权限为发起者的权限,也就是进程的属主是发起者的属主
1.3 启用SUID后进程的属主
  • 程序启动前:用户是否能够启动某二进制可执行文件为进程,取决于用户是否对该二进制可执行文件拥有x权限。
  • 程序启动后:进程拥有的权限为二进制可执行文件属主的权限,也就是进程的属主是二进制文件的属主
1.4 案例2
  1. 在root用户环境下将二进制可执行文件/bin/cat复制到tyson用户的家目录对应文件夹下,可以看到此时是没有设置SUID的。(注意:SUID只会在属主的权限中显示)。
[root@Tyson Lee learnSuid]# cp /bin/cat  /home/tyson/learnSuid/
[root@Tyson Lee learnSuid]# ll
total 56
-rwxr-xr-x. 1 root root 54080 Jan 14 01:29 cat
  1. 切换成tyson用户,测试在没有设置SUID权限的情况:
    拥有cat文件执行权限的tyson用户启动cat进程后,进程拥有的权限是tyson用户的权限。
    也就是说仅仅拥有tyson用户权限的cat程序无法对/etc/shadow文件进行操作(该文件的other权限为—)。
[root@Tyson Lee learnSuid]# su - tyson
Last login: Mon Jan 14 01:27:53 CST 2019 on pts/0
[tyson@Tyson Lee ~]$ cd learnSuid/
[tyson@Tyson Lee learnSuid]$ ls -al
total 60
drwxr-xr-x.  2 root  root     17 Jan 14 01:29 .
drwx------. 10 tyson tyson  4096 Jan 14 01:29 ..
-rwxr-xr-x.  1 root  root  54080 Jan 14 01:29 cat
[tyson@Tyson Lee learnSuid]$ ~/learnSuid/cat /etc/shadow
/home/tyson/learnSuid/cat: /etc/shadow: Permission denied
[tyson@Tyson Lee ~]$ ls -l /etc/shadow
----------. 1 root root 881 Jan 10 12:17 /etc/shadow
  1. 切换到root用户,给用户家目录下对应文件夹的cat进程设置SUID权限。需要注意SUID是给user位+S,而不是加载other位上。
    再切换到tyson用户,再启动二进制可执行文件cat后的cat程序拥有的就是其属主(root)的权限,而此时root用户可以查看/etc/shadow,所以tyson用户也就能够通过SUID来查看该文件的内容了。
[tyson@Tyson Lee learnSuid]$ su - root
Password: 
Last login: Mon Jan 14 01:28:07 CST 2019 on pts/0
you have been successfully process /etc/profile!
[root@Tyson Lee
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值