本文主要是介绍SGID特殊文件权限,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
拿一个企业实例带你看懂SGID
企业实例 假设系统中有两个账号,分别是alex与arod ,这两个账号除了支持自己的群组,还共同支持一个名为project的群组。如这两个账号共同拥有一个/srv/ahome/目录的开发组,且该目录不允许其他人进入查询,请问该目录的权限应如何设定呢?请先以传统代码说明,再以SGID的功能解析。
代码如下(示例):
这里我已创建用户和组并且把用户放入了附加组project
创建/srv/ahome ,改变目录ahome的属组为project,设置目录其他人不可读不可写不可执行的权限
这里有一个问题,既然是企业同一个组下那么应该是要完成同一个项目,但是我们的alex可以改arod的文件吗?
里面的文件依然没有变化,project组里的用户对ahome目录里的文件只有读权限,这不符合我们的要求 。
s
SGID 格式就是在组权限后面加个s ,这个s代表的是特殊权限,谁加s谁就拥有特殊权限
(这个权限的加在目录里) 这样我们新建的文件的属组都是project
也可以这么写
chmod 2770 /srv/ahome 2代表组 (组加上s) 4代表用户(用户加上s)
当一个目录被赋予 SGID 权限后,进入此目录的普通用户,其有效群组会变为该目录的所属组,会就使得用户在创建文件(或目录)时,该文件(或目录)的所属组将不再是用户的所属组,而使用的是目录的所属组。
总结
这篇关于SGID特殊文件权限的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!