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

标签 linux security unix

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

最佳答案

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

真实的 UID

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

有效的 UID

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

已保存的 UID

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

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

相关文章:

c - 在Linux上读取调试寄存器

c - 调用 c 文件时如何添加参数

ruby-on-rails - 如何测试 APNS p12 证书环境 ruby​​?

c - SYSCALL() 在 Linux 中在哪里实现?

c++ - Unix 套接字文件名错误

linux - 如何使用需要混合使用 sudo 和 sudo -u 用户名权限的命令来制作脚本?

java - REST 身份验证 - 数字签名?

sql-server - Windows 身份验证不适用于 SQL Server

linux - 如何将一长串参数读入 GDB/DDD

linux - 当 cron 不断给出错误但没有对日志进行重定向时会发生什么