首页 > 代码库 > SGID权限简介
SGID权限简介
SGID简介:
1.只有可执行二进制程序才能设置SGID权限
2.命令执行者要对该程序拥有执行(x)权限
3.命令执行者在执行程序的时候,组身份升级为该可执行程序文件的属组
4.SGID权限只在该程序执行过程中有效,也就是组身份只在程序执行过程中发生改变,命令结束用户组身份恢复.
以文件查找命令locate为例说明
1 [vampire@LAMP ~]$ 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 [vampire@LAMP ~]$ 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 [vampire@LAMP ~]$ cd /var/lib/mlocate/ 8 -bash: cd: /var/lib/mlocate/: Permission denied 9 [vampire@LAMP ~]$ ll /var/lib/mlocate/ 10 ls: cannot open directory /var/lib/mlocate/: Permission denied
普通用户使用locate命令可以查找文件是因为执行locate命令时组身份切换到该目录所属组slocate
SGID针对目录的作用
1.普通用户必须对该目录拥有rx权限,才能进入此目录
2.普通用户在该目录中的有效组会变成该目录的属组
3.若普通用户对此目录拥有w(可创建文件)权限时,新创建的文件的默认属组是这个目录的属组
1 [root@LAMP tmp]# chmod 2775 test 2 You have new mail in /var/spool/mail/root 3 [root@LAMP tmp]# ll 4 total 20 5 drwxrwsr-x 2 root root 4096 May 20 16:24 test
将身份切换为vampire
1 [vampire@LAMP ~]$ cd /tmp/test/ 2 [vampire@LAMP test]$ ll 3 total 0 4 [vampire@LAMP test]$ touch one.file //普通用户vampire没有权限在test目录中创建文件,上面给test目录赋予2775,普通用户只有rx权限,没有w权限 5 touch: cannot touch `one.file‘: Permission denied
将test目录权限修改为2777
1 [root@LAMP ~]# chmod 2777 /tmp/test/ 2 [root@LAMP ~]# ll /tmp/test/ 3 total 0 4 [root@LAMP ~]# ll /tmp/ 5 total 20 6 drwxrwsrwx 2 root root 4096 May 20 16:24 test
再将身份切换为vampire创建文件
1 [vampire@LAMP ~]$ cd /tmp/test/ 2 [vampire@LAMP test]$ touch one.file 3 [vampire@LAMP test]$ ll 4 total 0 5 -rw-rw-r-- 1 vampire root 0 May 20 16:37 one.file //新建文件的默认属组是这个目录(test)的属组(root)
SGID权限简介
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。