【前言】这3种特殊权限基本用不到,非常冷门,当作八卦听听就好

一、SetUID(用户)[4]

【功能】说人话就是:设置普通用户的一次性文件执行权限

1、只有可执行的二进制程序,才能设定SUID

2、执行者要有该程序有x执行的权限

3、命令执行者 一般是普通用户,在使用时间能赋予SUID的权限可能性

4、SUID权限只针对程序执行使用,就像windows的 获取管理员权限,这个动作只生效一次在执行程序时

linux给当前用户赋予docker权限 linux给用户赋予执行权限_普通用户

一般情况下passwd执行程序,会有s权限的,所以都有超级管理员权限

设定SUID的方法:

第一种:chmod 4755 [文件名]  重新刷新: [S][用户][用户组][其他]

第二种:   chmod u+s [文件名]

linux给当前用户赋予docker权限 linux给用户赋予执行权限_linux设置用户组权限-20_02

linux给当前用户赋予docker权限 linux给用户赋予执行权限_文件名_03

注意这边的大S说明没有任何作用,因为abc本身就没有x的能力;我们修改ooo看看变化就会发现ok

linux给当前用户赋予docker权限 linux给用户赋予执行权限_用户组_04

将其权限去除的方法:

第一种:chmod 755 [文件名]

第二种:   chmod u-s [文件名]

【注意】基本不建议随意设定SUID,否则你会给自己找麻烦

二、SetGID(用户组)权限[2]

与UID不同,GID可以针对目录和文件同时作用;

和UID的区别是1个组,1个是用户。这次变身的是组

用的不多。

linux给当前用户赋予docker权限 linux给用户赋予执行权限_用户组_05

【逻辑】

1、locate是一个可执行二进制文件,可以被赋予SGID

2、用户xx对locate有执行权限

3、执行locate命令时,用户组身份会升级为slocate权限,所以可以执行locate命令查询数据库

4、查询结束后,xx用户身份组返回原有xx组。

添加SGID的方法

chmod 2755 [文件名]

chmod g+s [文件名]

删除SGID的方法

chmod  755[文件名]

Chmod g-s[文件名

操作偏冷门,知道就好,不深入学习。

三、sticky BIT(其他) [1]

黏着位权限

【作用】

1、只针对目录分配权限

2、普通用户对该目录有w和x的权限

3、如果普通用户有w权限,那么他可以删除目录下的所有文件,包含其他用户创建的文件,注意

对root用户无效,只对普通用户有效

linux给当前用户赋予docker权限 linux给用户赋予执行权限_普通用户_06

添加SBIT的方法

Chmod 1755[目录名]

Chmod o+t[目录名]

取消SBIT的方法

Chmod 755[目录名]

Chmod o-t[目录名]