玩转Linux与运维岗(17)

四、特殊权限(扩展)

1、设置位S(SetUid)

作用:为了让一般使用者临时具有该文件所属主/组的执行权限。

例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?

答:可以临时让他们具有root的权限,而这个s权限就是用来完成这个特殊任务的。s权限只能应用在二进制的可执行文件上。

玩转Linux与运维岗(17)_第1张图片
示例代码:不想让普通用户修改自己的密码

注:which命令可以用于查看二进制可执行文件所在位置

去除s权限,基本语法:

#which passwd
#ll /usr/bin/passwd 

#chmod u-s /usr/bin/passwd 
或者
#chmod 0755 /usr/bin/passwd
去除passwd程序的s权限


#ll /usr/bin/passwd 

玩转Linux与运维岗(17)_第2张图片

测试普通用户:

玩转Linux与运维岗(17)_第3张图片
注:0755最前面的0表示不使用任何特殊权限,如果想使用数字设置特殊权限,可以使用4表示设置S位

2、沾滞位T (sticky bit)

命令:chmod

语法:# chmod [选项] 文件夹

作用:只允许文件的创建者和root用户删除文件

常用选项:o+t 添加粘滞位

​ o-t 去掉粘滞位

用法:chmod o+t 目录名
示例代码:
#chmod o+t 
含义:给目录增加粘滞位权限。

举例:

​ 公司多个部门公用一个文件夹work,为了让所有人都能访问,work文件夹赋予了777权限,用户root新建了一个文件root.txt,发现被别人删除了。我们希望root建立的文件,只有root自己可以删。

​ 步骤1:root用户下操作

​ root用户新建文件夹/work,并且新建两个文件root.txt和root1.txt,赋予/work文件夹和下面的文件777权限

#mkdir /work
#cd /work
#touch root.txt
#touch root1.txt
#chmod -R 777 /work
#ll -d /work

玩转Linux与运维岗(17)_第4张图片

​ 步骤2: wangwu用户下操作

​ 在没有设置粘滞位的时候,wangwu可以删除root创建的文件。

cd /work
ll -d /work
ll
rm -rf root.txt
ll

玩转Linux与运维岗(17)_第5张图片

​ 步骤3:root用户下操作:

​ 给/work文件夹添加粘滞位

#ll -d /work/
#chmod o+t /work
#ll -d /work/

玩转Linux与运维岗(17)_第6张图片

​ 步骤4:wangwu用户下操作
​ 发现添加粘滞位后,无法删除root2.txt文件

#ll -d /work/
#chmod o+t /work
#ll -d /work/

玩转Linux与运维岗(17)_第7张图片

​ 步骤5:root用户下操作

​ 去掉/work文件夹的取消粘滞位

#ll -d /work/
#chmod o-t /work
#ll -d /work/

玩转Linux与运维岗(17)_第8张图片

​ 步骤6:wangwu用户下操作
​ wangwu用户下,发现又可以删除了

#cd /work/
#rm -rf root1.txt
#ll

玩转Linux与运维岗(17)_第9张图片

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