【问题标题】:Explanation about multiple su关于多个su的解释
【发布时间】: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 而不是 1545015388。没有一个 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的方向。

【问题讨论】:

    标签: linux unix pid su


    【解决方案1】:

    我不确定,但我怀疑您看到的父进程是被调用的 shell。当您 su 时,您将运行 .profile ,它将调用多个其他进程并以启动的 shell 结束。所以父进程不会是su的先前调用,因为那不是产生这个的进程。 shell 做到了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      相关资源
      最近更新 更多