小白电脑课堂开课啦!游戏团战就死机,多半是废了。大家好我是小白。在Linux中你会发现,有些文件即使没有任何权限,但是其他用户还是能够写入数据。例如在rhel7中密码保存在/ect/shadow这个文件中,文件本身除了超级管理员外没有其他任何权限,但其他用户可以通过passwd来修改自己的密码。这是为什么呢?今天小白就和同学们说一说,Linux系统中文件的特殊权限。
一、Linux文件的特殊权限是用于弥补一般权限不能实现的功能,是针对于文件设置的一种特殊的功能。
二、Linux文件的特殊权限:
SUID:让执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效);
SGID:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序设置),
在该目录中创建的文件自动继承此目录的用户组(只可以对目录设置);
SBIT(Sticky Bit):只可管理自己的数据而不能删除他人文件(仅对目录有效)。
三、SUID(SET UID)
让执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
普通用户用passwd修改自己的密码,实际上是对/ect/shadow文件的修改。为什么该文件没有任何权限(除超级管理员外)而其他用户还能够写入数据呢?这就要归功于SUID特殊权限了。
如图所示,在所有者权限的可执行权限位上有字母“s”就说明该可执行文件具有SUID特殊权限。
四、SGID(SET GID)
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序设置),
在该目录中创建的文件自动继承此目录的用户组(只可以对目录设置)。
在所属组权限的可执行权限位上有字母“s”就说明该可执行文件或目录具有SGID特殊权限。
对于文件来说,执行者必须拥有执行该文件的执行权限;
对目录来说,使用者在该目录下的群组会变成该目录的群主。
五、SBIT(Sticky Bit)
只可管理自己的数据而不能删除他人文件(仅对目录有效)。
在其他用户权限的可执行权限位上有字母“t”就说明该目录具有SBIT特殊权限。
在Linux中/tmp目录就具有这样的权限。
我们可以用root用户在该目录下创建一个文件,然后用其他用户找到该文件,尝试删除该文件,结果很明显是不能删除的。同学们可以自己试一试,增强一下动手能力。
六、我们也可以用“chmod”命令来修改文件的特殊权限。(点这里,chmod命令说明)。
修改特殊权限的命令:
chmod u+s 文件名 添加SUID权限
chmod g+s 文件名 添加SGID权限
chmod o+t 目录名 添加SBIT权限
如果去除特殊权限用“-”代替“+”就可以了。
好了,今天就到这里,我们明天见!我们的微信ID是(小白电脑课堂),关注后可获取更多电脑知识!
告别电脑小白就从小白电脑课堂开始!