概述
进程用户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”和“