関数はプロセス固有の属性ですか、それともスレッド固有の属性ですか?

関数はプロセス固有の属性ですか、それともスレッド固有の属性ですか?

文書その機能は各スレッドの属性です。実際どんな場合でも

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

このスレッドに関連する機能を見つけることができます。

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

ただし、その間、機能に関する同様の情報は次の場所にあります。

/proc/[PID]/status

もちろん、プロセスには独自の機能があります。これは私を混乱させます。能力属性はプロセスですか、それともスレッドですか?機能を必要とするいくつかのコマンドを実行すると、カーネルはどのセットをチェックしますか?

答え1

機能は実際にはスレッドごとに行われ、スレッドは以下を使用して独自の機能(現在の機能が許可している場合)を変更できます。capset他の既存のスレッドの機能に影響を与えることなく。

/proc/[PID]/statuspidと一致するスレッド、より正確にはスレッドグループID(LinuxのプロセスID)と一致するスレッドを表示する機能です。

カーネルは常に関連スレッドの機能をチェックします。

関連情報