一、SetGID针对文件的作用
1、只有可执行的二进制程序才能设置SGID权限
2、命令执行者要对该程序拥有 x (执行)权限
3、命令执行在执行程序的时候,组身份升级为该程序的属组
4、SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中生效
注:
1、/usr/bin/locate 是可执行二进制程序,可以赋予SGID
2、执行用户 cjj 对 /usr/bin/locate命令拥有执行权限
3、执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有 r 权限,所以普通用户可以使用locate命令查询mlocate.db数据库
4、命令结束,cjj 用户的组身份返回为 cjj 组
二、SetGID针对目录的作用
1、普通用户必须对此目录拥有 r 和 x 权限,才能进入此目录
2、普通用户在此目录中的有效组会变成此目录的属组
3、若普通用户对此目录拥有 w 权限时,新建的文件的默认属组是这个目录的属组
三、设定SetGID
chmod 2755 文件名
chmod g+s 文件名
四、取消SetGID
chmod 0755 文件名
chmod g-s 文件名