Home » Mailing lists » Devel » userns: targeted capabilities v5  
	
		
		
			| [PATCH 7/9] add a user namespace owner of ipc ns [message #41746 is a reply to message #41743] | 
			Thu, 17 February 2011 15:03    | 
		 
		
			
				
				
				
					
						  
						serge
						 Messages: 72 Registered: January 2007 
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Changelog: 
	Feb 15: Don't set new ipc->user_ns if we didn't create a new 
		ipc_ns. 
 
Signed-off-by: Serge E. Hallyn <serge.hallyn@canonical.com> 
--- 
 include/linux/ipc_namespace.h |    3 +++ 
 ipc/msgutil.c                 |    3 +++ 
 ipc/namespace.c               |    9 +++++++-- 
 kernel/nsproxy.c              |    5 +++++ 
 4 files changed, 18 insertions(+), 2 deletions(-) 
 
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h 
index 5195298..46d2eb4 100644 
--- a/include/linux/ipc_namespace.h 
+++ b/include/linux/ipc_namespace.h 
@@ -24,6 +24,7 @@ struct ipc_ids { 
 	struct idr ipcs_idr; 
 }; 
  
+struct user_namespace; 
 struct ipc_namespace { 
 	atomic_t	count; 
 	struct ipc_ids	ids[3]; 
@@ -56,6 +57,8 @@ struct ipc_namespace { 
 	unsigned int    mq_msg_max;      /* initialized to DFLT_MSGMAX */ 
 	unsigned int    mq_msgsize_max;  /* initialized to DFLT_MSGSIZEMAX */ 
  
+	/* user_ns which owns the ipc ns */ 
+	struct user_namespace *user_ns; 
 }; 
  
 extern struct ipc_namespace init_ipc_ns; 
diff --git a/ipc/msgutil.c b/ipc/msgutil.c 
index f095ee2..d91ff4b 100644 
--- a/ipc/msgutil.c 
+++ b/ipc/msgutil.c 
@@ -20,6 +20,8 @@ 
  
 DEFINE_SPINLOCK(mq_lock); 
  
+extern struct user_namespace init_user_ns; 
+ 
 /* 
  * The next 2 defines are here bc this is the only file 
  * compiled when either CONFIG_SYSVIPC and CONFIG_POSIX_MQUEUE 
@@ -32,6 +34,7 @@ struct ipc_namespace init_ipc_ns = { 
 	.mq_msg_max      = DFLT_MSGMAX, 
 	.mq_msgsize_max  = DFLT_MSGSIZEMAX, 
 #endif 
+	.user_ns = &init_user_ns, 
 }; 
  
 atomic_t nr_ipc_ns = ATOMIC_INIT(1); 
diff --git a/ipc/namespace.c b/ipc/namespace.c 
index a1094ff..aa18899 100644 
--- a/ipc/namespace.c 
+++ b/ipc/namespace.c 
@@ -11,10 +11,11 @@ 
 #include <linux/slab.h> 
 #include <linux/fs.h> 
 #include <linux/mount.h> 
+#include <linux/user_namespace.h> 
  
 #include "util.h" 
  
-static struct ipc_namespace *create_ipc_ns(void) 
+static struct ipc_namespace *create_ipc_ns(struct ipc_namespace *old_ns) 
 { 
 	struct ipc_namespace *ns; 
 	int err; 
@@ -43,6 +44,9 @@ static struct ipc_namespace *create_ipc_ns(void) 
 	ipcns_notify(IPCNS_CREATED); 
 	register_ipcns_notifier(ns); 
  
+	ns->user_ns = old_ns->user_ns; 
+	get_user_ns(ns->user_ns); 
+ 
 	return ns; 
 } 
  
@@ -50,7 +54,7 @@ struct ipc_namespace *copy_ipcs(unsigned long flags, struct ipc_namespace *ns) 
 { 
 	if (!(flags & CLONE_NEWIPC)) 
 		return get_ipc_ns(ns); 
-	return create_ipc_ns(); 
+	return create_ipc_ns(ns); 
 } 
  
 /* 
@@ -105,6 +109,7 @@ static void free_ipc_ns(struct ipc_namespace *ns) 
 	 * order to have a correct value when recomputing msgmni. 
 	 */ 
 	ipcns_notify(IPCNS_REMOVED); 
+	put_user_ns(ns->user_ns); 
 } 
  
 /* 
diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c 
index 034dc2e..b6dbff2 100644 
--- a/kernel/nsproxy.c 
+++ b/kernel/nsproxy.c 
@@ -85,6 +85,11 @@ static struct nsproxy *create_new_namespaces(unsigned long flags, 
 		err = PTR_ERR(new_nsp->ipc_ns); 
 		goto out_ipc; 
 	} 
+	if (new_nsp->ipc_ns != tsk->nsproxy->ipc_ns) { 
+		put_user_ns(new_nsp->ipc_ns->user_ns); 
+		new_nsp->ipc_ns->user_ns = task_cred_xxx(tsk, user)->user_ns; 
+		get_user_ns(new_nsp->ipc_ns->user_ns); 
+	} 
  
 	new_nsp->pid_ns = copy_pid_ns(flags, task_active_pid_ns(tsk)); 
 	if (IS_ERR(new_nsp->pid_ns)) { 
--  
1.7.0.4 
 
_______________________________________________ 
Containers mailing list 
Containers@lists.linux-foundation.org 
 https://lists.linux-foundation.org/mailman/listinfo/containe rs
		
		
		
 |  
	| 
		
	 | 
 
 
 |  
  
 
	
	  | 
	 | 
	
		userns: targeted capabilities v5
		By:  serge on Thu, 17 February 2011 15:02  
	 | 
 
	  | 
	 | 
	
		[PATCH 2/9] security: Make capabilities relative to the user namespace.
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		By:  ebiederm on Fri, 18 February 2011 03:46  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		By:  serge on Wed, 23 February 2011 13:43  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 2/9] security: Make capabilities relative to the user namespace.
		
	 | 
 
	  | 
	 | 
	
		[PATCH 9/9] userns: check user namespace for task->file uid equivalence checks
		By:  serge on Thu, 17 February 2011 15:04  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 9/9] userns: check user namespace for task->file uid equivalence checks
		By:  ebiederm on Fri, 18 February 2011 01:29  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 9/9] userns: check user namespace for task->file uid equivalence checks
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 9/9] userns: check user namespace for task->file uid equivalence checks
		By:  serge on Thu, 24 February 2011 03:24  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 9/9] userns: check user namespace for task->file uid equivalence checks
		By:  akpm on Thu, 24 February 2011 05:08  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 9/9] userns: check user namespace for task->file uid	equivalence checks
		
	 | 
 
	  | 
	 | 
	
		[PATCH 7/9] add a user namespace owner of ipc ns
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 7/9] add a user namespace owner of ipc ns
		By:  ebiederm on Fri, 18 February 2011 03:19  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 7/9] add a user namespace owner of ipc ns
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 7/9] add a user namespace owner of ipc ns
		
	 | 
 
	  | 
	 | 
	
		[PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		By:  serge on Thu, 17 February 2011 15:02  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		By:  ebiederm on Fri, 18 February 2011 03:31  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		By:  ebiederm on Wed, 23 February 2011 21:21  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 1/9] Add a user_namespace as creator/owner of uts_namespace
		By:  ebiederm on Wed, 23 February 2011 23:54  
	 | 
 
	  | 
	 | 
	
		[PATCH 3/9] allow sethostname in a container
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 3/9] allow sethostname in a container
		By:  ebiederm on Fri, 18 February 2011 03:05  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 3/9] allow sethostname in a container
		
	 | 
 
	  | 
	 | 
	
		[PATCH 4/9] allow killing tasks in your own or child userns
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 4/9] allow killing tasks in your own or child userns
		By:  ebiederm on Fri, 18 February 2011 03:00  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 4/9] allow killing tasks in your own or child userns
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 4/9] allow killing tasks in your own or child userns
		By:  serge on Thu, 24 February 2011 00:48  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 4/9] allow killing tasks in your own or child userns
		By:  akpm on Thu, 24 February 2011 00:54  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 4/9] allow killing tasks in your own or child userns
		
	 | 
 
	  | 
	 | 
	
		[PATCH 6/9] user namespaces: convert all capable checks in kernel/sys.c
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 6/9] user namespaces: convert all capable checks in kernel/sys.c
		By:  ebiederm on Fri, 18 February 2011 01:57  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 6/9] user namespaces: convert all capable checks in kernel/sys.c
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 6/9] user namespaces: convert all capable checks in kernel/sys.c
		By:  akpm on Sat, 19 February 2011 00:01  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 6/9] user namespaces: convert all capable checks in	kernel/sys.c
		
	 | 
 
	  | 
	 | 
	
		[PATCH 5/9] Allow ptrace from non-init user namespaces
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		By:  ebiederm on Fri, 18 February 2011 02:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		By:  serge on Fri, 18 February 2011 04:36  
	 | 
 
	  | 
	 | 
	
		[PATCH] userns: ptrace: incorporate feedback from Eric
		By:  serge on Thu, 24 February 2011 00:49  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH] userns: ptrace: incorporate feedback from Eric
		By:  akpm on Thu, 24 February 2011 00:56  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH] userns: ptrace: incorporate feedback from Eric
		By:  serge on Thu, 24 February 2011 03:15  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		By:  akpm on Fri, 18 February 2011 23:59  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		By:  serge on Thu, 24 February 2011 00:43  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 5/9] Allow ptrace from non-init user namespaces
		
	 | 
 
	  | 
	 | 
	
		[PATCH 8/9] user namespaces: convert several capable() calls
		By:  serge on Thu, 17 February 2011 15:03  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 8/9] user namespaces: convert several capable() calls
		By:  ebiederm on Fri, 18 February 2011 01:51  
	 | 
 
	  | 
	 | 
	
		Re: [PATCH 8/9] user namespaces: convert several capable() calls
		
	 | 
 
	  | 
	 | 
	
		Re: userns: targeted capabilities v5
		By:  akpm on Fri, 18 February 2011 00:21  
	 | 
 
	  | 
	 | 
	
		Re: userns: targeted capabilities v5
		By:  ebiederm on Fri, 18 February 2011 03:53  
	 | 
 
	  | 
	 | 
	
		Re: userns: targeted capabilities v5
		By:  serge on Fri, 18 February 2011 04:28  
	 | 
 
	  | 
	 | 
	
		User namespaces and keys
		
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		By:  serge on Wed, 23 February 2011 13:58  
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		By:  ebiederm on Wed, 23 February 2011 14:46  
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		By:  ebiederm on Wed, 23 February 2011 15:45  
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		By:  ebiederm on Wed, 23 February 2011 20:55  
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		
	 | 
 
	  | 
	 | 
	
		Re: User namespaces and keys
		By:  ebiederm on Thu, 24 February 2011 06:56  
	 | 
  
Goto Forum:
 
 Current Time: Tue Nov 04 13:41:49 GMT 2025 
 Total time taken to generate the page: 0.12808 seconds 
 |