Linux 进程管理:用户与组 ID、会话、进程组及守护进程详解
1. 用户与组 ID 相关概念
在 Linux 系统中,用户和组 ID 是管理进程权限的重要概念,主要涉及到真实用户 ID(real user ID)、有效用户 ID(effective user ID)和保存用户 ID(saved user ID)。
当进程执行 exec 调用时,有效用户通常不变,但执行 setuid (suid)二进制文件时,进程可以改变其有效用户 ID,将其设置为程序文件所有者的用户 ID。例如, /usr/bin/passwd 是一个 setuid 文件,其所有者为 root ,当普通用户的 shell 生成一个进程来执行该文件时,无论执行用户是谁,该进程的有效用户 ID 都会变为 root 。
非特权用户可以将有效用户 ID 设置为真实用户 ID 或保存用户 ID,而超级用户可以将有效用户 ID 设置为任何值。保存用户 ID 是进程最初的有效用户 ID,进程 fork 时,子进程会继承父进程的保存用户 ID。执行 exec 调用时,内核会将保存用户 ID 设置为有效用户 ID。非特权用户不能更改保存用户 ID,超级用户可以将其更改为与真实用户 ID 相同的值。
有效用户 ID 是验证进程凭据时检查的关键值,真实用户 ID 和保存用户 ID 则作为非根进程可以切换的替代或潜在用户 ID 值。
超级会员免费看
订阅专栏 解锁全文
119

被折叠的 条评论
为什么被折叠?



