![]() |
1
51
每个UNIX进程都有3个与其关联的uid。超级用户权限是uid=0。 真正的UID 这是创建此进程的用户/进程的uid。仅当正在运行的进程的euid=0时才能更改。 有效的UID 此uid用于评估进程执行特定操作的权限。euid可以更改为ruid,也可以更改为suid,如果euid!=0。如果euid=0,则可以将其更改为任何内容。 保存的UID 如果使用set uid位集运行可执行文件,则生成的运行进程将以运行该文件的实际用户的实际uid以及可执行文件所有者的有效和保存的uid开始。如果进程随后调用setuid()或seteuid()以更改其有效的uid,则由于保存的uid,它们仍然可以重新获得原始特权。如果未设置set uid位,suid将是ruid。 |
![]() |
2
6
真正的uid是启动进程的用户的ID。 有效uid通常与实际uid相同。只有在以下情况下才不同:
保存的uid是进程启动时的有效uid,它被保存以允许作为各种set*uid系统调用的参数。 请注意,具有超级用户权限的进程调用setuid(2)来更改其有效uid,也会将实际uid和保存的uid更改为相同的值,因此应改用非posix seteuid(2)。 以上所有内容也适用于(实际有效保存的)组ID。 |
![]() |
3
4
除了真实、有效和保存的uid之外,启用审计的UNIX系统还具有审计uid。进程的AUID标识启动该进程的用户;它不会被setuid(2)或seteuid(2)更改。其目的是在整个过程中保持不变,并且仅用于标记审计记录。因此,如果用户执行特权shell(甚至是通过su或sudo获得授权的用户),那么该进程的审计记录将从该用户标记。 |
![]() |
4
1
每个Linux进程都有3个与其关联的uid。
|
![]() |
5
0
接受的答案是不正确的,因为真正的UD不能被任何人改变,除了根。 从setuid的手册页: (我无法发表评论)
|
![]() |
sk123 · Shell脚本-如何在循环中显示变量名及其值 1 年前 |
|
sai · unix中使用python进行数据重组 1 年前 |
![]() |
FangQ · 如何使用jq打印由制表符“\t”分隔的JSON数组元素 1 年前 |
|
ROHAN · 我想显示包含一个括号的行,包括它的开头或结尾 1 年前 |
![]() |
Geomicro · 删除模式sed之间的逗号 1 年前 |