文件特殊权限(SUID,SGID,SBIT)

设置权限

chmod u+s,g+s,o+t filename

chmod u=rwxs,go=x

SUID=4   SGID=2    SBIT=1

chmod 7755 filename

Set UID

Set UID 即 SUID

★ SUID 仅对二进制程序(binary program)有效,如:命令

★执行者对于改程序需要具有 x 的可执行权限

★本权限仅在执行该程序的过程中(run time)有效

★执行者将具有该程序所有者(owner)的权限

description

SUID 本人无法通过命令从啊做来说明,但是举个例子吧。

/etc/shadow 配置文件的权限为 "-r-------- 1 root root"  只有 root 可以强制写入,也就是说理论上只有 root 可以进行修改密码,但实际上任何一个用户都可以修改自己的密码。

冲突吗?不冲突,这个时候 SUID 的作用就出来了,我们通过 which 命令查找 passwd 命令,得到权限 “-rwsr-xr-x 1 root root”  这个地方的 ‘s’ 权限就是 SUID 了,它可以使任何用户在调用这个命令时获得 root 权限

Set GID

Set GID 即 SGID,SGID与SUID不同,SGID针对文件或者目录

SGID对文件的作用:

★SGID对二进制程序有用

★程序执行者对于该程序来说,需具备 x 的权限

★执行者在执行的过程中将会获得该程序用户组的支持

SGID对目录的作用:

★用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录

★用户在此目录下的有效用户组,将变成该目录的所属用户组

★若用户在此目录下具有 w 的权限,则用户所创建的新文件的用户组与此目录的用户组相    同

Example

SGID对于文件的操作与SUID效果相同,在此不做阐述,这里的例子主要讲述SGID对于目录的作用

第一步:创建 project 用户组,并把 king 用户的附加用户组改为 project

第二步:在 /srv 目录下创建 projecthome 文件,并修改权限为770,用户组修改为 project

文件特殊权限(SUID,SGID,SBIT)_第1张图片

第三步:切换到 king 用户,在 projecthome 文件下创建 a.txt ,观察用户组

文件特殊权限(SUID,SGID,SBIT)_第2张图片

第四步:切换到 root ,为 projecthome 设置SGID权限,再使用 king 创建 b.txt,并观察

文件特殊权限(SUID,SGID,SBIT)_第3张图片

Sticky Bit

Sticky Bit 即 SBIT,目前只针对目录有效

★当用户在该目录下创建文件或者目录时,仅有自己以及 root 有权限修改

Example

第一步:创建用户 test1,test2 ,并查询 /tmp 权限

第二步,调用 test1 用户在 /tmp 目录下创建 a.txt ,调用  test2 用户去删除 a.txt

文件特殊权限(SUID,SGID,SBIT)_第4张图片

小结

chmod 7666 filename

输出 -rwSrwSrwT

因文件本身没有 x 权限 ,所以给了特殊权限也无法使用

你可能感兴趣的:(文件特殊权限(SUID,SGID,SBIT))