进程的“实际用户ID”、“有效用户ID”、“保存设置用户ID”和“设置用户ID位”辨析

本文介绍了进程的三种用户ID:实际用户ID(RUID)、有效用户ID及其在权限检查中的作用。重点解析了“设置用户ID位”这一文件属性,它允许进程在执行特定操作时暂时提升权限,如passwd命令修改密码。此外,还解释了保存的设置用户ID在权限切换中的角色,以at程序为例展示了如何在不同用户权限间切换。

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

概述

进程用户ID的种类

进程的用户ID有3种:

ID名称 说明
实际用户ID(RUID) 登录时取自口令文件,只能由root修改
有效用户ID(EUID) 用于权限检查,初始值为RUID,可由exec或setuid函数更改
保存的设置用户ID(SUID) 是EUID的副本,用于恢复EUID

下面详细讲解这3种ID。

实际用户ID(RUID)

实际用户ID说明了我们实际上是谁,该值在login函数执行时,取自口令文件/etc/passwd中的第3列:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

我们shell进程的3个用户ID初始值都是该值。实际用户ID的值一经确定就几乎不会被更改(如果进程具有root权限,那么可以调用setuid函数更改实际用户ID)。

有效用户ID

有效用户ID用于权限检查,例如当我们想要访问一个文件时,系统会比较“有效用户ID”和“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值