美文网首页
阅读记录——setuid特权程序

阅读记录——setuid特权程序

作者: eesly_yuan | 来源:发表于2016-07-13 23:12 被阅读330次

内容来自:Linux安全—Setuid特权程序(一)setuid和seteuid,进行简单记录

setuid

Set user ID upon execution,即给程序的权限表上打上一个能以该程序的拥有者的权限运行的标签;
对于一个拥有setuid属性的程序,在运行时就以该程序的拥有者的权限执行。

类比

皇帝(root)比较忙,所以不可能全国各地到处巡视。于是,他派出了钦差大臣。钦差大臣本身没有掌控生杀大权,但得到了御赐的上方宝剑(setuid权限),于是他便有了皇帝的权利。

场景

passwd可以通过读写/etc/shallow文件更改用户密码,而该文件是需具有root权限才能进行读写的,但普通用户也可以用passwd程序改写自己的密码——其中的秘密就是passwd是一个具有setuid属性的程序

deeper

每个进程都有有效ID和真实ID

有效用户ID(effective UID)
进程的访问控制基于有效用户ID进行的,简单理解就是系统如何判断进程是否具有对某个文件的访问权限,是通过有效用户ID进行判定的

真实用户ID(real UID)
进程真正的拥有者,即创建该进程的用户

1、对于setuid的程序运行的进程,其有效用户ID是该程序文件的的拥有者,而真实用户ID是使用该进程的用户。
2、而非setuid的程序运行的进程,有效用户ID和真实用户ID都是使用该程序的用户。
3、在用户登录系统的时候,登录进程的有效用户ID,真实用户ID和暂存用户ID都设置成登录用户的ID。当进程调用exec函数家族执行一个程序时,与该进程相关联的用户和组ID就可能会改变。如果执行的程序是一个setuid程序,有效用户ID和暂存用户ID会被设置成为该程序的拥有者。如果该文件被标识为set-group-id标识,那么该文件的有效和暂存用户ID会被设置成为执行该程序的用户组ID。如果以上两种都不是的话,则暂存用户ID,有效用户ID都不会改变。

more

linux下有4种uid,
(1)真实uid(real user id), 表示进程的实际执行者, 只有root才能更改
(2)有效uid(effective user id),用于检测进程在执行时所获得的访问文件的权限(
(3)保存的uid(saved user id),用于保存effective uid, 以便当effective uid设置成其他id时可以再设置回来
(4)文件系统的uid.

1、setuid(uid)首先请求内核将本进程的[真实uid],[有效uid]和[被保存的uid]都设置成函数指定的uid, 若权限不够则请求只将effective uid设置成uid, 再不行则调用失败.具体而言
(1)当用户具有超级用户权限的时候,setuid 函数设置的id对三者都起效.[规则一]
(2)否则,仅当该id为real user ID 或者saved user ID时,该id对effective user ID起效.[规则二]
(3)否则,setuid函数调用失败.

2、seteuid(uid)仅请求内核将本进程的[有效uid]设置成函数指定的uid.

相关文章

  • 阅读记录——setuid特权程序

    内容来自:Linux安全—Setuid特权程序(一) 和 setuid和seteuid,进行简单记录 setuid...

  • Day-11linux特殊权限,chattr,lsattr,um

    1.特殊权限 特殊权限分为三种:setuid,setgid,sbit 1)setuid 用户运行起来程序叫做进程,...

  • 再谈文件权限

    本文的主线 准备 => setuid => sticky 准备 setuid setuid: run with t...

  • setuid and getuid

    setuid and getuid 获取某个用户的UID setuid If the user is root ...

  • SetUID Set

    SetUID 的特性 属性 只能针对二进制程序 命令执行者需要对该程序有x权限 作用 命令执行者在执行该程序的过程...

  • SetUID

    设定SetUID的方法:4代表SUIDchmod 4755 文件名chmod u+s 文件名 取消SetUI...

  • 特殊权限SUIG、SGID、SBIT

    SUID、SGID、SBIT 一、SetUID与SGID 只能用于二进制程序 执行者需要有该二进制程序的x权限 执...

  • 从零开始学习Linux(二十五):文件特殊权限之SetUID

    文件的特殊权限主要分为SetUID、SetGID、Sticky BIT三种。本章节主要是学习SetUID。 1、S...

  • 程序阅读记录

    图像归一化方式:image/255img/127.5 - 1 第一种是对图像进行归一化,范围为[0, 1],第二种...

  • Linux Qt setUID 程序的编写

    设备管理器、分区编辑器之类的应用程序需要管理员权限才能正常运行。但每次打开都要输入密码验证,这太麻烦了。 我的想法...

网友评论

      本文标题:阅读记录——setuid特权程序

      本文链接:https://www.haomeiwen.com/subject/iahejttx.html