rhel 7特殊权限

本文详细介绍了Linux系统中的三种特殊权限:SUID、SGID和SBIT。SUID允许执行者暂时获得程序所有者的权限,如在非root用户下执行`ls`命令。SGID在文件上使执行者使用组群权限运行,在目录上则使得新创建的文件继承目录的组群身份。而SBIT(粘滞位)确保在特定目录中,只有文件所有者或root能删除文件。文章还探讨了如何通过字符和数字方式设置这些权限,并提供了一个实际的权限配置案例,用于实现多用户访问共享目录但只能删除自己创建的文件的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SUID:

                           用于二进制的文件中,对目录无效

                    让一般用户在执行某些二进制文件的时候,能够暂时拥有该程序(二进制文件)所有者的权限

                    使用该命令的所属用户的权限来运行,而不是命令执行者的权限

比如:

           在root用户的家目录下(在某一目录下执行ls命令时候,要看其目录对应的权限   ls  -ld /root)

           普通用户test 使用ls命令,提示权限不够,当在root用户中给ls命令加个SUID权限时候,就能正常执行了

           

图中chmod  u+s   /usr/bin/ls  可以用数字表示为  chmod 4755 /usr/bin/ls

ls  -l  /usr/bin/passwd    

-rwsr-xr-x                 s为特殊权限位,小写s表示存在x权限,大写S表示不存在x权限

SUID作用:

aSUID权限仅对二进制程序(binary program)有效;

b、执行者对于该程序需要具有x的可执行权限;

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

d、执行者将具有该程序拥有者(owner)的权限。


二、sgid

         对于文件,使用该命令的组群权限来运行

         对于目录:在设置了sgid权限的目录中创建的文件会继承该目录的组群身份

        

图中chmod   g+s  2  可以用数字表示为  chmod 2755  2


三、sbit     

       粘滞位(Sticky Bit ):在带有粘滞位的目录中的文件只能被文件的所属用户和根用户删除,不管该目录的写入权限是如何设置的(“ t ” 代表粘滞位)

     /tmp本身的权限 1777

    在具有sbit的目录下,用户若在该目录下具有wx权限,则当用户在该目录下建立文件或目录时,只有文件的拥有者和root才有权利删除


总结

       SUID/SGID/SBIT权限设置

       和前面说的rwx差不多,也有两种方式,一种是字符方式,一种是数字方式。

4 为 SUID = u+s

2 为 SGID = g+s

1 为 SBIT = o+t

小s和大S的区别,小t和大T的区别(大写位表示其位为空)


练习

公司有一台文件共享服务器,有个公共目录/common,属于pub组;公司有3个部门sales、markets和techs;user1属于sales部门,user2属于markets部门,user3属于techs部门;要求:user1、user2、user3有访问/common目录的权限,并且在/common目录中创建的文件及目录的属组为pub组,而且不能删除其他用户创建的文件及目录,只有自己有权限删除。

新建目录/common,并将他加入pub组,同时保证pub组的人都能在该目录下进行读和写
#mkdir /common
#groupadd  pub
#chgrp  pub /common
#chmod    g=rwx  /common


新建三个用户并加入对应组,同时都加入pub这个附加组中
#groupadd sales
#groupadd   markets
#groupadd   techs
#useradd user1  -g  sales
#echo 123456 |passwd  --stdin user1
#useradd user2 -g markets
#echo 123456 |passwd  --stdin user2
#useradd user3 -g techs
#echo  123456|passwd  --stdin user3
#usermod  -G  pub  user1
#usermod  -G  pub  user2
#usermod  -G  pub  user3
#chmod  g+s  /common
#chmod  o+t /common

验证测试新建对象是否属于pub组
#su - user1
#cd   /common
#touch  user1_file
#mkdir   user1_d
#ls  -l    *
确认user1_file和user1_d是否都属于pub组



验证测试普通用户能否删除其他用户建立的对象
#exit
#su  - user2
#cd  /common
#rm  -rvf    user1_file
确认user2能否删除之前user1创建的两个对象



备注:user1\user2\user3都可以进行类似的测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值