Innux(特殊位与权限)

特殊位与权限

目录:

1. SUID

2. SGID

3. SBIT

4. 文件系统属性chattr权限

5. 管理员权限sudo

1. SUID

1.1 什么是SUID

SUID只对二进制可执行文件才有效(文件必须具备x权限)

执行者对该程序有 x 权限

当前程序拥有SUID时,该程序执行者在程序执行期间暂时获得该程序属主身份

执行者所获得的权限只在该程序运行时有效

1.2 为什么需要SUID

passwd文件具备SUID

可以看到拥有者权限是rws

这代表在执行该程序时,执行者会获得拥有者的权限(拥有者是root)

为什么要这样设置权限呢,因为passwd实际上会去修改/etc/shadow的内容,但是这个文件只允许管理员修改

但是用户有修改密码这个需求,所以我们在用户执行该程序时暂时赋予用户管理员权限,便于用户修改密码,在程序执行结束后收回权限

1.3 如何设置SUID

chmod u+s 文件名

u代表设置的是SUID

Innux(特殊位与权限)_第1张图片

chmod 4755 文件名

第一个数字 4 代表 SUID,后面分别代表:

2.拥有者

3.所属组

4.其他人

Innux(特殊位与权限)_第2张图片

1.4 如何移除SUID

chmod u-s 文件名

SUID已经被移除

chmod 755 文件名

该方法效果与上面相同

2. SGID

1.1 什么是SGID

SGID可以设置目录可执行文件,命令的执行者需要拥有对文件的x权限,也就是可执行权限

程序执行过程中,组身份升级该程序所属组

获得权限只在程序执行的过程中有效

1.2 为什么需要SGID

我们先安装locate,用于进行测试

Innux(特殊位与权限)_第3张图片

查看locate命令

通过观察我们发现,所属组部分有个s,这个s即代表开启了SGID

在执行该命令时,会在执行期间将组身份升级为该文件的所属组

locate命令需要使用mlocate.db文件,但是默认情况普通用户是没有权限阅读的,当用户运行locate命令时,组身份升级为了该文件的所属组,所以具有的相对的权限进行阅读

1.3 如何设置SGID

chmod g+s 文件或目录名

Innux(特殊位与权限)_第4张图片

chmod 2777 文件或目录名

第一个数字 2 代表 SGID,后面分别代表:

2.拥有者

3.所属组

4.其他人

Innux(特殊位与权限)_第5张图片

在设置了SGID目录中,创建文件,默认的所属组变成了目录的所属组

3. SBIT

1.1 什么是SBIT

SBIT粘着位权限

SBIT权限只能针对目录有效

没有SBIT权限,拥有该文件w权限的用户可以删除该文件

拥有SBIT权限,只有该文件的拥有者管理员用户才能删除

1.2 设置SBIT

chmod o+t 目录名

Innux(特殊位与权限)_第6张图片

c

chmod 1777 目录名

第一个数字 1 代表 SBIT,后面分别代表:

2.拥有者

3.所属组

4.其他人

你可能感兴趣的:(linux,服务器,运维)