linux 目录的粘滞位,Linux浅谈SUID,SGID,Sticky粘滞位对目录以及文件的相关作用

我们知道在Linux中,root管理员的权限是很大的,能够支持执行绝大部分程序以及命令进而对文件进行相对应的修改,写入。当然这些作用只能体现在root管理员上。但是有一个现象,有些普通用户是可以通过passwd命令进行修改自己密码的,进而间接就修改了/etc/passwd的文件。正规思想:普通用户是无法修改/etc/passwd文件的。在这里,普通用户其实是运用了SUID权限。当然还有SGID,Sticky粘滞位。我们一一打开神秘的面面纱。

1.首先我们先来说说SUID权限的神奇之处。

之前提到了普通用户能够运用passwd间接修改/etc/passwd文件,我们先确认一下passwd命令的权限属性:

![](https://s4.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权限同样独立原始权限。

举个例子:

先看这个目录的所有者以及目录权限

59492798637661017737596370605d4b.png

这个目录的所属组时root ,当然新建的文件也都是属于root的。组的权限是rx权限。那么组员是可以对里面的文件进行查看访问,以及相关操作的。

下面对它设置sgid权限,改变它的所属组,以及新建文件,看效果。

536a1608cfb15982f634340a5b3d00fb.png

先进行设置sgid

8b28777890ab93329933b86d2d20ae03.png

已经发生了变化,多出了一个s,说明拥有了sgid权限,这个目录。

6818ddc458be19816472e196cc0259a2.png

这里修改目录的所属组,这样的话,接下来的文件所属者会自动分配为目录所属组的组名。

看效果:

linux 目录的粘滞位,Linux浅谈SUID,SGID,Sticky粘滞位对目录以及文件的相关作用_第1张图片

看,自动获取所属组的,这样的就大大提升了用户对该文件的使用效果。可以在haoxianwang组里添加很多组员的。可想而知它的方便,高效。

总结一下sgid:

(1)作用在目录上,当目录下新建文件时,以及文件夹时,那么自动获取目录的所属组作为文件或者文件夹的所属组。

(2)它也可以对二进制文件生效,但是很少使用。

接下来介绍一下sticky粘滞位的作用

sticky权限只对目录有作用,而且只针对其他人(other)。这个粘滞位,其实是起到了安全的作用。如果对目录了读写执行权限,那么任何人就可以删除目录中的文件了,哪怕文件本身没有写权限和执行权限。这个时候sticky粘滞位就体现出来了。它的作用就是所有人只能创建自己的文件,以及删除自己的文件。其他人的你是触碰不到的。

废话不多说,上图!

3893d7e2b88596137764ffd1c1585959.png

将目录设置上sticky权限,这样的话,目录的安全性就高了。

我们试试删除文件,文件我给设置了读写执行权限,目录也具有执行权限,我们看看删除文件的效果。

defdb744f00738b01a4733ee427850fc.png

可以看到是不允许删除的。这样就大大提高了文件的安全性。

总结一下:

sticky粘滞位权限只针对目录,只对目录有作用。

好啦,到这里基本介绍完毕。

本人刚入运维道路,知识哪里有不周到之处,还请大佬们多多指导。

感谢大家的阅读参阅!

你可能感兴趣的:(linux,目录的粘滞位)