一、含义
1.SUID
即set user id:让用户在执行某些程序的时候,能够暂时有该程序拥有者的权限(如grid用户执行oracle用户的文件,会暂时持有oracle用户的权限)
2.SGID
即set group id
二、举例
比如说/etc/shadow文件,其他用户都没有权限
[root@mysql02 /]# ls -l /etc/shadow
---------- 1 root root 1005 Feb 18 16:46 /etc/shadow
但是用户可以自己修改密码,这是因为用户修改密码的时候,使用的是/usr/bin/passwd程序
—查看passwd权限:
[root@mysql02 /]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /usr/bin/passwd
但是因为cat没有拥有s权限,所以cat命令无法调取/etc/shadow文件
-bash-4.2$ ls -l /bin/cat
-rwxr-xr-x 1 root root 54160 Jun 15 2018 /bin/cat
-bash-4.2$ cat /etc/shadow
cat: /etc/shadow: Permission denied
三、授权方式
首先明确几个注意事项:
1)suid仅对二进制文件有效
2)文件拥有者对于这个文件本身要有x权限(你自己都没有执行权限,别人获取所有者权限意义就不大了)
3)权限标志:4为SUID,2为SGID
举例:
给一个文件授予SUID权限(但是不给执行权限)
(ps:SGID+SUID权限的授予是chmod 6755 test.txt)
[root@mysql02 /]# chmod 4655 test.txt
这时候看文件的权限,可以看到S是大写的,这就代表了S权限是空的
[root@mysql02 /]# ls -l test.txt
-rwSr-xr-x 1 root root 0 Mar 21 23:21 test.txt