linux 特殊权限【suid,sgid,sbit】
前言:
当我们使用ls命令去查看一个文件或目录的权限时,除了rwx三个常规的权限,还会看到下面这两个权限,或者更多。

SET UID(suid)
suid的功能:
- SUID 权限仅对二进制程序(binary program)有效;
- 执行者对于该程序需要具有 x 的可执行权限;
- 本权限仅在执行该程序的过程中有效 (run-time);
- 执行者将具有该程序拥有者 (owner) 的权限。
比如passwd命令,所属用户可执行权限为s,他就是一个有suid权限的可执行文件,并且为二进制,SUID 仅可用在 binary program 上, 不能够用在 shell script 上面!

SET GID (sgid)
sgid的功能:
- SGID 对二进制程序有用;
- 程序执行者对于该程序来说,需具备 x 的权限;
- 执行者在执行的过程中将会获得该程序群组的支持!
s 在群组的 x 时则称为 Set GID, SGID,所以该特殊权限一般针对用户组
比如当一个命令的所属组为yy,如果给该命令添加了sgid权限的话,那就可以使用test以yy用户组的身份使用该命令去查看某个属于该用户组的文件,权限就是该文件的组权限;sgid更多使用在目录的权限配置下,当一个目录设定了 SGID 的权限后,他将具有如下的功能:
- 用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
- 用户在此目录下的有效群组(effective group)将会变成该目录的群组;
- 用途:若用户在此目录下具有 w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同
STICKY BIT (sbit)
sbit的作用:
- 当用户对于此目录具有 w, x 权限,亦即具有写入的权限时
- 当用户在该目录下建立文件或目录时,仅有自己与 root 才有权力删除该文件
例如linux中的/tmp目录旧有sbit目录,所有除root用户外的用户都可以在目录下创建修改文件,但是仅限于自己创建的文件或目录。只有root才有权限修改目录下的任何文件
就算test1在改目录下创建的文件被root赋予777权限,test2也不能删除该文件!!
SUID/SGID/SBIT 权限设定
在以往chmod 755 文件命令 里前面多加一个数字用以添加特殊权限;chmod 4755 文件,这个4就是suid
4 为 SUID
2 为 SGID
1 为 SBIT
如果s/t这两个字母为大写的就代表,st占用的的x权限为空,如下

普通用户没有x权限



浙公网安备 33010602011771号