Linux中的SetUID简介

本文介绍了Linux系统中进程的ruid(真实用户ID)和euid(有效用户ID)概念,阐述了它们的区别及作用,并解释了setuid机制如何通过修改euid实现特殊权限的赋予权限。

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

ls -l /usr/bin/passwd

- rws r-x r-x root root …

关于ruid和euid
首先需要明确一下Linux进程中ruid和euid的概念.
每一个Linux进程都会包含这两个uid.

ruid(real user ID):
ruid可以理解为哪个用户执行了这个程序或者文件, ruid就是谁.

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

也就是说操作系统实际是通过判断进程的euid而不是ruid来给予其权限,只是在大多数情况下, euid和ruid是相等的.

SetUID
setuid是类unix系统提供的一个标志位, 其实际意义是set一个process的euid为这个可执行文件或程序的拥有者(比如root)的uid, 也就是说当setuid位被设置之后, 当文件或程序(统称为executable)被执行时, 操作系统会赋予文件所有者的权限, 因为其euid是文件所有者的uid
必须是一个可执行程序 命令 shell脚本 即必须首先有x权限 才能更改成s权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值