Linux中的setuid

13 篇文章 0 订阅

最近在看面试题的时候看到setuid,记忆不是那么深刻,所以记下来。

关于ruid和euid

首先我们要知道Linux中ruid和euid的概念
进程中都会有ruid和euid。

ruid(real user ID):
ruid可以理解为真实用户ID,当前用户执行,则ruid就是当前用户。

euid(effective user ID):
当进程执行时间,操作系统会对euid进行识别,以此来判断到底用什么权限来执行这个进程。

也就是说操作系统实际上是通过判断进程的euid来给予权限,然而在大多数情况下,euid和suid是相等的。

setuid

setuid系统提供的一个标志位,其实际意义是set一个progress的euid为这个可执行文件或程序的拥有者的uid,也就是说当setuid位被设置之后,当文件或程序执行时,操作系统会赋予文件所有者的权限,因为其euid是文件所有者的uid。

通俗的来讲

setuid的作用是将文件执行时的权限更换为文件拥有者的权限,而不是当前用户所拥有的权限。

举例

setuid的方法是使用Linux的chmod指令,在设置文件权限的同时设置setuid位,

chmod 4 750 Filename
or
chmod u+s Filename

在这里插入图片描述
可以发现文件test权限的 x 变为了 s ,说明setuid已经被设置,之后任何用户执行这个文件的时候(用户需要有该文件的执行权限),都会以root的权限运行(文件的owner是root用户)。所以,针对一个需要被很多user以root权限执行的文件,我们可以通过setuid来进行操作,这样就不必为所有的user都使用sudo指令。

借鉴自Linux中的setuid简介
请大佬多多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值