Posix

能力是每個程序還是每個執行緒的屬性?

  • January 19, 2022

文件說功能是每個執行緒的屬性。確實在任何

/proc/[PID]/task/[LWP]/status

我們可以找到與此執行緒相關的功能:

CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000

但與此同時,有關能力的類似資訊位於

/proc/[PID]/status

所以程序,顯然有它自己的能力。這讓我感到困惑 - 是程序還是執行緒的功能屬性?當執行一些需要能力的命令時,核心會檢查什麼集合?

能力確實是每個執行緒的,一個執行緒可以改變它自己的能力(在目前能力允許的情況下)使用capset而不影響其他現有執行緒的能力。

/proc/[PID]/status顯示與 pid 匹配的執行緒的功能,或者更準確地說,是執行緒組 id(在 Linux 中是程序 id)。

核心總是檢查相關執行緒的能力。

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