SetGID
SUID只能对文件来设置权限,而SGID则能针对文件和目录来设定权限
对于文件,和suid类似
例:最典型的就是locate命令
在按照文件名搜索相关文件的时候,它搜索的是数据库/var/lib/mlocate/mlocate.db
可以看到,普通用户没有权限。但因为locate命令有SGID权限,因此当任何用户拿这个命令去执行搜索的时候,它的组身份都会切换为mlocate这个组,而这个组是对该文件有读权限的。故而普通用户也可以执行这个命令来搜索数据库。
例子:首先在root权限下,在/tmp目录下建立test目录,并将权限设置成777
然后切换到普通用户sam,在/tmp目录下建立文件abc,可以看到abc文件的所有者和所属组都是sam
然后,切换回root用户,给test目录附上SGID权限,如下
然后再切换回sam,在test文件夹下创立新文件bcd,可以看到bcd的所属组变成了root
总结一下就是,如果一个目录有了SGID权限,则任何用户在这个目录下创建的文件的所属组都会变为root