Linux

/proc/pid/status 中的補充組來自哪裡,它們總是從 shell 繼承的嗎?

  • September 19, 2018

在 /proc/pid/status 中,我們可以看到 pid 的所有補充組(我的理解是假設它是從互動式 shell 派生的,或者程序執行了 getgroups(2))

我想知道這些組是如何提供給程序的。它們通常都是從父 shell 繼承的,我們應該假設父 shell 在某個時候做了 getgroups(或者從做了 getgroups 的登錄 shell 繼承了值)?

你的理解是正確的。組總是從父程序繼承(init 開始時沒有補充組)。改變這種情況的唯一方法是通過 setgroups。這是由 su、sshd 或任何為使用者執行登錄的特權程序完成的。到使用者的 shell 執行時,組已經設置好了。

引用自:https://unix.stackexchange.com/questions/469897