/proc/pid/status 中的补充组来自哪里,它们总是从 shell 继承吗?

/proc/pid/status 中的补充组来自哪里,它们总是从 shell 继承吗?

在 /proc/pid/status 中,我们可以看到 pid 的所有补充组(我的理解是,假设它是从交互式 shell 中分叉出来的,或者进程执行了 getgroups(2))

我想知道如何将这些组提供给流程。它们通常都是从父 shell 继承的吗?我们应该假设父 shell 在某个时刻执行了 getgroups(或者从执行 getgroups 的登录 shell 继承了值)?

答案1

你的理解是正确的。组始终从父进程继承(init 启动时没有补充组)。改变这一点的唯一方法是通过集合组。这是通过 su、sshd 或任何为用户执行登录的特权进程来完成的。当用户的 shell 运行时,组已经设置完毕。

相关内容