2021-05-19

              如何理解普通用户有passwd和mlocate权限?
                                                    ————————权限管理之SUID和SGID

一、 问题提出

首先从两个案例进入今天的文章,第一个root下创建的默认用户g1是没有对passwd的执行权限的,但是在g1里passwd却可以执行,这是为什么呢?第二个root下查看 /var/lib/mlocate/mlocate.db 详细信息:-rw-r-----. 1 root slocate 1060711 May 19 10:13 /var/lib/mlocate/mlocate.db
普通用户是没有对这个文件的任何权限的。但是却可以在普通用户权限下查看这个文件?
二、原理
2.1 当普通用户执行具有suid权限的命令时,会临时借用命令的所有者身份来执。
root下查看 /etc/shadow ll /etc/shadow
[root@localhost ~]# ll /etc/shadow
----------. 1 root root 2055 May 19 20:03 /etc/shadow
可看到这个文件其他人是没有任何权限的,但是为什么用户可以修改密码呢?密码怎么写入shadow内呢?
2.2当用户执行具有sgid权限的命令时,会临时将普通用户加入命令的所属组。
在root下ll [root@localhost etc]# ll /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 1060711 May 19 10:13 /var/lib/mlocate/mlocate.db
普通用户是没有对这个mlocate.db的权限的
在普通身份下查看 ll [g1@localhost ~]$ ll /usr/bin/locate
-rwx–s--x. 1 root slocate 40520 Apr 11 2018 /usr/bin/locate
所以当普通用户执行具有sgid的命令时,会临时加入这个组内。而组是有执行的权限。

拓:sgid 还可以对目录进行设置
当普通用户在具有sgid权限的目录内,创建文件时,普通用户会临时修改自己的有效组为
该目录的所属组,然后创建文件,那么文件的所属组就是目录的所属组。
实验:
[root@localhost /]mkdir /gqs
[root@localhost /] chmod 777 /gqs
[root@localhost /]su - g1
[g1@localhost ~] t o u c h / g q s / 1. t x t [ g 1 @ l o c a l h o s t   ] touch /gqs/1.txt [g1@localhost ~] touch/gqs/1.txt[g1@localhost ]ll
-rw-rw-r–. 1 g1 g1 0 May 20 15:13 1.txt

       [g1@localhost ~]$exit
       [root@localhost /]chmod g+s /gqs
       [root@localhost /]su - g1
       [g1@localhost ~]$t touch /gqs/2.txt
       [g1@localhost ~]$tll
       -rw-rw-r--. 1 g1 root 0 May 20 15:14 2.txt

补:sbit 黏着位
在具有sbit权限的目录内删除文件时,只有文件的所有者才可以删除文件,即便对目录有w,也不能随便删除其他人的文件。
实验:
[root@localhost /]chmod o+t /tmp
[root@localhost /]su - g1
[g1@localhost ~] t o u c h / t m p / g 1. t x t [ g 1 @ l o c a l h o s t   ] touch /tmp/g1.txt [g1@localhost ~] touch/tmp/g1.txt[g1@localhost ]exit
[root@localhost /] su - gqs001
[gqs001@localhost tmp]rm -rf /tmp/g1.txt
[gqs001@localhost tmp]提示,not permitted
[gqs001@localhost tmp]exit
[root@localhost /]chown gqs001/tmp/g1.txt
[root@localhost /]su - gqs001
[gqs001@localhost tmp]rm -rf g1.txt
成功删除
文件保护方式
三、总结
s权限的设置是授予所有用户,相比sudo授权范围大,所有需要或可以使用s权限的命令很少。
知道其原理和会用即可。不要随意使用。
SUID:主要针对命令设置的一种权限 --权限放大
SGID:针对命令和目录都能设置的一种权限–权限放大
SBIT:只针对目录设置的权限–权限缩小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值