SUID和SGID问题

[复制链接]
查看11 | 回复4 | 2021-1-27 07:08:11 | 显示全部楼层 |阅读模式
如果UNIX系统有一个/dev/kmem的设备文件,是字符设备文件权限设为:
cr--r-----1rootsystem21May251998kmem
ps如果要读这个文件,ps的权限设置如下:
-r-xr-sr-x1binsystem59346Apr051998ps
因为ps的所有者是bin,而设备文件的所有者root,
所以不能通过设置SUID来实现读此设备文件的功能

我觉得是可以的啊,ps设置SUID之后,执行程序,然后bin和root同一组,但是SUID优先级高于SGID,所以有效组ID也是改成了system,然后此文件的组用户也是可以读的
本人菜鸟,求人解释下上面有什么问题么,不胜感激。。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:08:11 | 显示全部楼层
设置SUID,只影响EUID,要是EUID匹配不成功,它检查EGID,未设置SGUID,则就是你自己的GID了,对kmem,如果不是system肯定不行,如果是的话,就没必要设置SUID了。
回复

使用道具 举报

千问 | 2021-1-27 07:08:11 | 显示全部楼层
SUID的优先级比SGID高,当一个可执行程序设置了SUID,则SGID会自动变成相应的egid。
上面的这就话就是指组内的权限的执行位也得设置为s位吗,是不是不设置的话,组的EGID就不会变啊?
现在在机子上我也不好验证,装的UBUNTU,ps的默认用户就是root

回复

使用道具 举报

千问 | 2021-1-27 07:08:11 | 显示全部楼层
同样求解~~~~~
回复

使用道具 举报

千问 | 2021-1-27 07:08:11 | 显示全部楼层
楼主没怎么搞明白SUID,SGID和SBIT这三个属性的作用和区别么
所谓SUID,为SetUserID,这个属性只有二进制可执行文件可以拥有,当有用户执行拥有此种属性的文件时,此用户暂时拥有了此文件的所有者的权限
所谓SGID,为SetGroupID,这个属性可以设置给目录,当任何用户在此目录下新建文件或者目录时,新建的这个文件或者目录的组和设置为SGID的目录的组相同
所谓SBIT,为StickyBit,这个属性只能设置给目录,当有用户在此目录下新建文件或目录后,只有root,和文件或目录的拥有者有权限删除新建的文件或者目录

上提问中,
cr--r-----1rootsystem21May251998kmem
此设备只有root以及system组的用户可读
-r-xr-sr-x1binsystem59346Apr051998ps
说明ps属于bin用户,给此文件设置SUID属性以后,当有用户要执行ps命令时,此用户便在执行此命令的时候具有了同bin用户一样的权限,但是bin用户不一定属于system用户组,所以不一定可读
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行