小白电脑课堂开课啦!游戏团战就死机,多半是废了。大家好我是小白。在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权限 如果去除特殊权限用“-”代替“+”就可以了。 好了,今天就到这里,我们明天见! 告别电脑小白就从小白电脑课堂开始! |
|