Linux文件特殊权限:SUID,SGID,SBIT(黏滞位)的简单介绍

来源:互联网 发布:烟花算法 编辑:程序博客网 时间:2024/04/30 04:03

进入文章正文之前,我么先来看两个文件的属性
这里写图片描述
之前我们所了解的文件权限只有r、w、x,那上面我们看到的/tmp中“others”的x权限变成了t,以及/usr/bin/passwd中“user”的x权限是s,这又是怎么回事?

下面我们来介绍文件的三种特殊权限
1,SetUID
当s出现在文件所有者的x权限时,被称为“Set UID”,简称为SUID。SUID对一个文件的限制与功能包括以下几点:
(1)SUID仅对二进制有效
(2)执行者对于该程序需要有x的可执行权限
(3)本权限仅在程序的执行过程中有效
(4)执行者具有该程序所有者(user)的权限

下面举例说明:
在linux中,所有账号的密码都记录在/etc/shadow这个文件里面,这个文件的权限为
这里写图片描述
表示这个文件只有root可以写入,那我们试试用自己的账号修改自己的passwd。输入命令“passwd”,可以看到普通用户是可以修改自己密码的。
这里写图片描述
而在/etc/shadow的权限中我们明明看到其他其他用户是没有这样的权限的,这就是SUID的功能。

(1)普通用户对于/usr/bin/passwd这个文件是有x权限的,表示普通用户可以执行passwd
(2)passwd的拥有者是root
(3)普通用户执行password的过程中会暂时获得root的权限
(4)/etc/shadow可以被普通用户修改
但如果我们使用cat去读取/etc/shadow时,因为cat不具有SUID的权限,所以在偶同用户执行“cat /etc/shadow”时,是不能读取的,我们用一张图说明:
这里写图片描述

2,Set GID
当s在用户组的x时则称为Set GID(SGID),用下面的命令来查看具有SGID权限的文件
这里写图片描述
SGID可以针对目录或文件来设置。如果是文件,SGID有如下的功能:
(1)SGID对二进制程序有用
(2)程序执行者对于该程序来说,需具备x权限
(3)执行者在执行过程中将会获得该程序用户组的支持

如果是一个目录设置了SGID权限后,它将具有以下功能:
(1)用户若对于此目录具有r与x的权限时,该用户能进入此目录;
(2)用户在此目录下的有效用户组将会变成该目录的用户组
(3)若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同。

下面介绍第三种特殊权限
3,Sticky Bit(黏滞位)
Sticky Bit(SBIT)只对目录有效,对文件没有效果,SBIT对于目录的效果是:
(1)当用户对此目录具有w、x权限时
(2)当用户在目录下创建文件或目录时,仅有root与自己才有权利删除该文件

当甲对A目录具有用户组或其他人的身份且具有w权限时,表明甲对该目录内任何人新建的目录或文件均可进行删除、重命名、移动等操作,当对A目录加上SBIT的权限后,则甲只能对自己创建的文件或目录进行删除、重命名、移动等操作,而无法删除他人的文件。
可上机进行以下操作理解SBIT
这里写图片描述
/tmp的权限时777,那为什么普通用户无法删除test呢?这就是SBIT的作用了。

当一个目录被设置为“黏滞位”,则该目录下的文件只能由:
(1)超级管理员删除
(2)该目录的所有者删除
(3)该文件的所有者删除

那么,如何配置文件使其具有以上三种特殊权限呢?
很简单,我们来举例说明:
这里写图片描述

1 0
原创粉丝点击