linux - 进程可以拥有的每个不同 UID 的用途是什么?

标签 linux security unix

真实的UID,有效的UID,有的系统甚至还有一个“保存的UID”。所有这些的目的是什么,尤其是最后一个?

最佳答案

每个 UNIX 进程都有 3 个关联的 UID。 super 用户权限是 UID=0。

真实 UID

这是创建此进程的用户/进程的 UID。仅当运行进程的 EUID=0 时才可以更改。

有效 UID

此 UID 用于评估执行特定操作的进程的特权。如果 EUID!=0,EUID 可以更改为 RUID 或 SUID。如果 EUID=0,则可以更改为任何内容。

保存的 UID

如果您在设置了 set-UID 位的情况下运行可执行文件,那么生成的运行进程将以运行它的真实用户的真实 UID 以及可执行文件所有者的有效且已保存的 UID 开始。如果该进程随后调用 setuid() 或 seteuid() 来更改其有效 UID,由于已保存的 UID,它们仍然可以再次取回其原始权限。如果未设置 set-UID 位,则 SUID 将是 RUID。

关于linux - 进程可以拥有的每个不同 UID 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41458277/

相关文章:

linux - 当终端关闭时,Laravel 5.6 在后台的队列处理停止

php - 将多个站点文件合并到一个位置

linux - 我已经强制安装了 glibc 2.3 版本,之后我无法运行任何 linux cmd,因为它要求 glibc 2.4

asp.net-mvc - ipSecurity - 如何添加 IP 地址范围

linux - 通过 Unix shell 脚本查找和删除重复的字符串。如何?

ruby - 安装完整的 ruby​​ 后要使用什么 shebang 行?

ruby-on-rails - 允许用户输入代码示例的最不危险的方法是什么?

linux - Samba、其他非交互式帐户 - noshell、nologin 或空白?

unix - 如何将文件 scp 到 Unix 主机,以便文件轮询服务在复制完成之前看不到该文件?

php - 如何在 php 中创建安全的 mysql 准备语句?