标签:linux 运维 图片 二进制文件 gid 用户配置文件 改变 账户 查看
我们知道在Linux中,root管理员的权限是很大的,能够支持执行绝大部分程序以及命令进而对文件进行相对应的修改,写入。当然这些作用只能体现在root管理员上。但是有一个现象,有些普通用户是可以通过passwd命令进行修改自己密码的,进而间接就修改了/etc/passwd的文件。正规思想:普通用户是无法修改/etc/passwd文件的。在这里,普通用户其实是运用了SUID权限。当然还有SGID,Sticky粘滞位。我们一一打开神秘的面面纱。
1.首先我们先来说说SUID权限的神奇之处。
之前提到了普通用户能够运用passwd间接修改/etc/passwd文件,我们先确认一下passwd命令的权限属性:
![](http://i2.51cto.com/images/blog/201807/29/b57d2f2673f6d18f301bb49cd6a97e32.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
看上图,passwd 是存在这个路径中的,它是个外部命令。在所有者权限那里看到有一个s标识,s就相当于x权限。这个s对于普通用户的话,是可以进行继承的。简单说,passwd对root用户有什么权限,一个用户执行passwd的时候,也就临时继承了root账户的相应权限,这样一来就可以理解为什么普通用户可以对用户配置文件进行修改了。记住只对passwd这个命令起作用。
SUID设置方法:
模式法:chmod u+s 相应的可执行的命令程序。数字法:chmod 4+(原始可执行程序权限)suid的权限独立于普通权限的。
总结一下SUID:
(1)SUID一般都作用于二进制文件上,一般不作用在目录上。
(2)当一个普通用户在执行设置了SUID的可执行程序时,那么它就继承了原有所属者的权限。
以上就是SUID的相应介绍。
2.SGID的神奇之处
SGID这个权限主要是作用在目录上的,一般运用在小组项目中。比如一个设置一个专用目录给一个小组进行使用,里面的文件可以对组成员进行开发使用。而且所有新创建的文件都属于一个组。这样一来小组的工作效率就会很高了,方便管理。那么这么好的一个设想,该如何实现呢? 这就要用到SGID权限了。
sgid设置方法:
模式法:chmod g+s 相对应的目录或者可执行文件。
数字法:chmod 2 (原始目录权限)suid权限同样独立原始权限。
举个例子:
先看这个目录的所有者以及目录权限
这个目录的所属组时root ,当然新建的文件也都是属于root的。组的权限是rx权限。那么组员是可以对里面的文件进行查看访问,以及相关操作的。
下面对它设置sgid权限,改变它的所属组,以及新建文件,看效果。
先进行设置sgid
已经发生了变化,多出了一个s,说明拥有了sgid权限,这个目录。
这里修改目录的所属组,这样的话,接下来的文件所属者会自动分配为目录所属组的组名。
看效果:
看,自动获取所属组的,这样的就大大提升了用户对该文件的使用效果。可以在haoxianwang组里添加很多组员的。可想而知它的方便,高效。
总结一下sgid:
(1)作用在目录上,当目录下新建文件时,以及文件夹时,那么自动获取目录的所属组作为文件或者文件夹的所属组。
(2)它也可以对二进制文件生效,但是很少使用。
Linux浅谈SUID,SGID,Sticky粘滞位对目录以及文件的相关作用
标签:linux 运维 图片 二进制文件 gid 用户配置文件 改变 账户 查看
原文地址:http://blog.51cto.com/13880739/2151671