如何找到有效用户ID(EUID)、真实用户ID(RUID)和已保存的用户ID(SUID)?

如何找到有效用户ID(EUID)、真实用户ID(RUID)和已保存的用户ID(SUID)?

我需要找到不同进程的 RUID、EUID 和 SUID。不幸的是,我不知道如何找到这些 ID。

给出的是:
所有者、组和其他人访问权限。然后是一个数字(我不知道它有什么用,但它总是等于1),所有者的姓名,组。最后是修改日期时间和文件名。

以下是一个例子:

-rwsr-xr--  1  anna  users  Oct  12  11:12  file3.bin

答案1

这些参数属于过程。你给出的例子描述的不是一个过程,而是一个文件。如果您将该文件作为程序运行,则只会获得一个进程。

初始有效 UID(以及保存的 UID)可以在这里猜测:由于该文件设置了“setuid”标志,并且归用户“anna”所有,因此运行它将创建一个具有“anna”用户有效 UID 的进程。

同时,初始真实 UID 为总是根据运行程序和创建进程的用户。您可以使用它id来查看您的进程。事实上,您可以复制id到一个临时位置,更改其所有者,设置“setuid”位,然后查看它打印出什么值。

但是,进程可能会交换其真实和有效 UID,或者如果由 root 拥有,则将其更改为任何内容。要了解特定进程的 UID,您应该检查过程– 在 Linux 上,这可以通过读取来完成/proc/<pid>/status,包括所有 UID、GID、补充组等。

相关内容