linux权限体系(三)特殊权限SUID、SGID

一、SUID
1.1 基础知识
SUID 是针对二进制可执行文件而言的,他的最终目的是所有用户在执行设置了SUID的二进制可执行文件时,该二进制拥有的权限是文件所有者的权限。(打破安全上下文法则)。
案例理解

[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
在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

切换成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

二、SGID
2.1 基础知识
SGID的产生需求:root用户需要设置某一个文件夹,使得其他普通用户在该文件夹下创建文件的时候,所创建的文件的属组是目录的属组(而默认情况下文件的属组是创建者的属组)。
SGID可以作用在文件和目录上:
作用在文件上:类似于SUID,用户将二进制可执行文件启用成进程后,进程的属组是二进制可执行文件的属组,进程的权限是二进制可执行文件属组的权限。
作用在目录上:任何用户在该目录下创建的文件的属组与目录的属组相同。

猜你喜欢

转载自blog.csdn.net/weixin_43803070/article/details/94758653
今日推荐