userns: Allow unprivileged use of setns.
- Push the permission check from the core setns syscall into the setns install methods where the user namespace of the target namespace can be determined, and used in a ns_capable call. Acked-by: Serge Hallyn <serge.hallyn@canonical.com> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
@@ -161,8 +161,12 @@ static void ipcns_put(void *ns)
|
||||
return put_ipc_ns(ns);
|
||||
}
|
||||
|
||||
static int ipcns_install(struct nsproxy *nsproxy, void *ns)
|
||||
static int ipcns_install(struct nsproxy *nsproxy, void *new)
|
||||
{
|
||||
struct ipc_namespace *ns = new;
|
||||
if (!ns_capable(ns->user_ns, CAP_SYS_ADMIN))
|
||||
return -EPERM;
|
||||
|
||||
/* Ditch state from the old ipc namespace */
|
||||
exit_sem(current);
|
||||
put_ipc_ns(nsproxy->ipc_ns);
|
||||
|
Reference in New Issue
Block a user