var
来源:景安IDC资讯作者:server发布时间:2015-10-10点击:1579
本节主要为大家介绍Linux文件特殊权限-SetGID;SetGID与SetUID相比就不是太一样,SetUID操作对象只能是可以执行的二进制文件或者程序,但是SetGID既可以针对二进制文件也可以针对目录设置。
1、SetGID针对文件的作用
(1)只有可执行的二进制程序才能设置SGID权限;
(2)命令执行者要对该程序拥有x(执行)权限;
(3)命令执行在执行程序的时候,组身份升级为该程序文件的属组;
(4)SetGID权限同样只在该程序执行过程中有效,也就说组身份改变只在程序执行过程中有效。
[root@localhost ~]# 11/usr/bin/locate
-rwx--s--x root slocate 35612 8月 24 2014/usr/bin/locate
[root@localhost ~]# 11 /var/lib/mlocate/mlocate.db
-rw-r---- root slocate 1838850 1月 20 04:29/var/lib/mlocate/mlocate.db
执行过程
/usr/bin/locate是可执行二进制程序,可以赋予SGID;
执行用户lamp对/usr/bin/locate命令拥有执行权限;
执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库;
命令结束,lamp用户的组身份返回为lamp组;
2、SetGID针对目录的作用
(1)普通用户必须对此目录拥有r和x权限,才能进入此目录
(2)普通用户在此目录中的有效组会变成此目录的属组;
(3)若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组。
3、设定SetGID
chmod 2755 文件名(2代表SGID)
chmod g+s 文件名
4、取消SetGID
chmod 755 文件名
chmod g-s 文件名
版权声明:本文系技术人员研究整理的智慧结晶,转载勿用于商业用途,并保留本文链接,侵权必究!