Linux 进程管理:用户、组、会话与守护进程详解
1. 用户和组 ID 相关概念
在 Linux 系统中,用户和组 ID 是管理进程权限的重要概念,主要涉及到实际用户 ID(real user ID)、有效用户 ID(effective user ID)和保存的用户 ID(saved user ID)。
- 实际用户 ID :属于实际运行程序的用户的有效用户 ID。
- 有效用户 ID :在验证进程凭据时检查的用户 ID,是关键的权限判断依据。
- 保存的用户 ID :进程的原始有效用户 ID,在进程执行 exec 调用时,内核会将其设置为有效用户 ID。
当进程执行 exec 调用时,通常有效用户 ID 不变,但如果执行的是 setuid(suid)二进制文件,进程的有效用户 ID 会被设置为程序文件所有者的用户 ID。例如, /usr/bin/passwd 是一个 setuid 文件,其所有者是 root,当普通用户的 shell 产生一个进程来执行该文件时,无论执行用户是谁,该进程的有效用户 ID 都会变为 root。
非特权用户可以将有效用户 ID 设置为实际用户 ID 或保存的用户 ID,而超级用户可以将有效用户 ID 设置为任何值。非特权用户不能更改保存的用户 ID,超级用户可以将其更改为与实际用户 ID 相同的值。
2. 修改用户和组 ID 的系统调用
Linux 提供了多种系统调用来修改用
超级会员免费看
订阅专栏 解锁全文
96

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



