SGID权限简介

Posted iaknehc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SGID权限简介相关的知识,希望对你有一定的参考价值。

SGID简介:
1.只有可执行二进制程序才能设置SGID权限
2.命令执行者要对该程序拥有执行(x)权限
3.命令执行者在执行程序的时候,组身份升级为该可执行程序文件的属组
4.SGID权限只在该程序执行过程中有效,也就是组身份只在程序执行过程中发生改变,命令结束用户组身份恢复.

以文件查找命令locate为例说明

1 [[email protected] ~]$ ll /usr/bin/locate 
2 -rwx--s--x. 1 root slocate 35548 Sep 24  2012 /usr/bin/locate   //拥有SGID权限,普通用户执行该命令时,组身份会切换到slocte

使用locate命令查找文件时,实际是在/var/lib/mlocate/mlocate.db数据库中查找

 1 [[email protected] ~]$ ll /var/lib/
 2 total 140
 3 -rw-r--r--.  1 root    root     728 May 20 09:32 logrotate.status
 4 drwxr-xr-x.  2 root    root    4096 May  2  2016 misc
 5 drwxr-x---.  2 root    slocate 4096 May 20 09:32 mlocate   //可以看到属主和所属组成员才能看到该目录下的文件
 6 
 7 [[email protected] ~]$ cd /var/lib/mlocate/
 8 -bash: cd: /var/lib/mlocate/: Permission denied
 9 [[email protected] ~]$ ll /var/lib/mlocate/
10 ls: cannot open directory /var/lib/mlocate/: Permission denied

普通用户使用locate命令可以查找文件是因为执行locate命令时组身份切换到该目录所属组slocate

SGID针对目录的作用
1.普通用户必须对该目录拥有rx权限,才能进入此目录
2.普通用户在该目录中的有效组会变成该目录的属组
3.若普通用户对此目录拥有w(可创建文件)权限时,新创建的文件的默认属组是这个目录的属组

1 [[email protected] tmp]# chmod 2775 test
2 You have new mail in /var/spool/mail/root
3 [[email protected] tmp]# ll
4 total 20
5 drwxrwsr-x 2 root    root    4096 May 20 16:24 test

将身份切换为vampire

1 [[email protected] ~]$ cd /tmp/test/
2 [[email protected] test]$ ll
3 total 0
4 [[email protected] test]$ touch one.file    //普通用户vampire没有权限在test目录中创建文件,上面给test目录赋予2775,普通用户只有rx权限,没有w权限
5 touch: cannot touch `one.file: Permission denied

将test目录权限修改为2777

1 [[email protected] ~]# chmod 2777 /tmp/test/
2 [[email protected] ~]# ll /tmp/test/
3 total 0
4 [[email protected] ~]# ll /tmp/
5 total 20
6 drwxrwsrwx 2 root    root    4096 May 20 16:24 test

再将身份切换为vampire创建文件

1 [[email protected] ~]$ cd /tmp/test/
2 [[email protected] test]$ touch one.file
3 [[email protected] test]$ ll
4 total 0
5 -rw-rw-r-- 1 vampire root 0 May 20 16:37 one.file  //新建文件的默认属组是这个目录(test)的属组(root)

 

以上是关于SGID权限简介的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

sgid 特殊权限

Linux学习总结:特殊权限SUID,SGID,SBIT

特殊权限之sgid

Linux特殊权限 SUID、SGID、Sticky

(转)Linux 文件目录特殊权限设定(SUID,SGID,SBIT)