Linux カーネル コードを参照しているときに、次の 2 つの関数が に見つかりましたkernel/capability.c
。
1)
bool has_capability(struct task_struct *t, int cap)
/*Does a task have a capability in init_user_ns.*/
2)
bool has_ns_capability(struct task_struct *t, struct user_namespace *ns, int cap)
/*Does a task have a capability in a specific user ns.*/
init_user
最初の関数で言及されている名前空間は何ですか?
私の知る限り、プロセスには機能があります (プロセスのさまざまな機能セットについては今は気にしないでください)。 ?
同じファイルの の定義を見るとcap_get_target_pid()
、ユーザー名前空間を気にせずに、指定された pid でプロセスの機能を取得することについて話しているだけです。これは私にはより自然に見えます。