文档说能力是每个线程的属性。确实在任何
/proc/[PID]/task/[LWP]/status
我们可以找到与此线程相关的功能:
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
但同时有关功能的类似信息位于
/proc/[PID]/status
那么流程,显然有它自己的能力。这让我很困惑 - 能力属性是进程还是线程?当执行某些需要功能的命令时,内核会检查什么集?
答案1
功能确实是针对每个线程的,并且线程可以使用以下命令更改其自己的功能(在当前功能允许的情况下)capset
而不影响其他现有线程的功能。
/proc/[PID]/status
显示匹配 pid 的线程的功能,或者更准确地说,匹配线程组 id(Linux 中的进程 id)。
内核总是检查相关线程的能力。