【发布时间】:2014-06-09 02:54:21
【问题描述】:
当多个 su 发生时,我有点困惑。假设发生了这样的情况:
Fikrie su to root :
ps -ef | grep su:
root 15524 15388 0 10:15 pts/0 00:00:00 su root
我知道那个 su 的 pid 是 15524,父 pid 是 15388。但是当多个 su 发生时。例如:这种情况。
Fikrie su root:
root su fikrie2:
fikrie 2 su root:
ps -ef | grep su:
root 15450 15388 0 10:15 pts/0 00:00:00 su root
fikrie2 15468 15458 0 10:15 pts/0 00:00:00 su fikrie2
root 15478 15476 0 10:15 pts/0 00:00:00 su root
我认为当 root su 进入 fikrie2 时,第一个 pid 将是第二个 su 的 ppid。不知何故,当我尝试 grep 过程时,这让我感到困惑。 ppid 变为 15458 而不是 15450 或 15388。没有一个 ppid 与它之前的 ppid 或 pid 连接/相关。我尝试用谷歌搜索并在Advanced Programming in the UNIX Environment 书中阅读了有关process relationship 的信息。有人可以给我一个很好的解释,或者一个链接来帮助我更多地了解流程关系。
我正在尝试编写代码来查找 su 进入该用户的用户。从我调查的所有答案中,他们只帮助找到原始用户,例如。菲克里。如果发生第二种情况,当我从 fikrie2 su 到 root 时,我无法获得 fikrie2。相反,我得到的是原始用户 fikrie。我最初的想法是使用父 id 来获取用户,但是在从命令行执行时。这真的让我很困惑。
PS* 我正在 Unix 平台上尝试这个。我对Windows一无所知,但是如果Windows和Unix之间的ppid和pid不同,请指出进入Unix的方向。
【问题讨论】: