在浏览 Linux 内核代码时,我在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 获取进程的功能,而不用担心用户命名空间。这对我来说看起来更自然。