Linux Container Development
 help / color / mirror / Atom feed
From: "Serge E. Hallyn" <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: Nathan Lynch <ntl-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
Cc: Linux Containers <containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>
Subject: Re: selinux prevents msgrcv on restore message queues?
Date: Wed, 3 Mar 2010 17:44:48 -0600	[thread overview]
Message-ID: <20100303234448.GA27869@us.ibm.com> (raw)
In-Reply-To: <1267653386.3559.9.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

Quoting Nathan Lynch (ntl-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org):
> On Wed, 2010-03-03 at 13:49 -0600, Serge E. Hallyn wrote:
> > Quoting Nathan Lynch (ntl-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org):
> > > On Tue, 2010-03-02 at 19:19 -0600, Serge E. Hallyn wrote:
> > > > Can you try the following patch?
> > > > 
> > > > Also, to actually restore the LSM labels you need to add -k to your
> > > > restart flags, but without the -k you should get a sane default
> > > > security label.
> > > 
> > > Thanks, the ipc/mq tests pass with this patch and restart -k.  Without
> > > -k the tests still fail in the same manner (msgrcv fails).  Is that the
> > > behavior you'd expect?
> > 
> > Not really - the test runs as unconfined_u right?
> 
> I added a ps -Z to test-mq.sh before thawing:
> 
> # PATH=/root/cr/user-cr.git:$PATH bash test-mq.sh 
> Using output dir ./cr_mq_6T8KIG6
> XXX Test 1: simple restart with SYSVIPC msq
> check-mq: no process killed
> ../common.sh: line 45:  5173 Killed                  ( sleep $1; kill -s USR1 $$ )
> LABEL                             PID TTY          TIME CMD
> unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 4358 pts/1 00:00:00 bash
> unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 5151 pts/1 00:00:00 bash
> unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 5172 pts/1 00:00:00 nsexec
> unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 5175 pts/1 00:00:00 sleep
> unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 5178 pts/1 00:00:00 check-
> unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 5183 pts/1 00:00:00 ps
> PASS

Can you try the following patch?

(this is on top of the last one - I'd sent)

The problem is that selinux does not assign a label to a msg_msg
until you do msgsnd.  So it may be best to special-case the
msg_msg object type and always have it restore the msgtype.  One
reason *NOT* to do that woudl be that the restarter might not have
msg_msg:restore permission...  But pls let me know if this patch
fixes your problem.

thanks,
-serge

From d20ab718b6ebe21a034801c461772e588b92432a Mon Sep 17 00:00:00 2001
From: Serge E. Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Date: Wed, 3 Mar 2010 11:31:33 -0600
Subject: [PATCH 1/1] always restore msg_msg label

Signed-off-by: Serge E. Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
---
 security/security.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/security/security.c b/security/security.c
index 28db976..2b147cf 100644
--- a/security/security.c
+++ b/security/security.c
@@ -1524,7 +1524,9 @@ int security_restore_obj(struct ckpt_ctx *ctx, void *v, int sectype,
 
 	/* return if caller didn't want to restore checkpointed labels */
 	if (!(ctx->uflags & RESTART_KEEP_LSM))
-		return 0;
+		/* though msg_msg label must always be restored */
+		if (sectype != CKPT_SECURITY_MSG_MSG)
+			return 0;
 
 	l = ckpt_obj_fetch(ctx, secref, CKPT_OBJ_SECURITY);
 	if (IS_ERR(l))
-- 
1.6.0.6

  parent reply	other threads:[~2010-03-03 23:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-02 21:36 selinux prevents msgrcv on restore message queues? Nathan Lynch
     [not found] ` <1267565774.11828.15.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-03  0:47   ` Serge E. Hallyn
     [not found]     ` <20100303004727.GA8272-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-03-03  1:19       ` Serge E. Hallyn
     [not found]         ` <20100303011941.GA10429-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-03-03 18:04           ` Nathan Lynch
     [not found]             ` <1267639445.11828.19.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-03 19:49               ` Serge E. Hallyn
     [not found]                 ` <20100303194910.GC12379-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-03-03 21:56                   ` Nathan Lynch
     [not found]                     ` <1267653386.3559.9.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-03 23:44                       ` Serge E. Hallyn [this message]
     [not found]                         ` <20100303234448.GA27869-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-03-04  0:16                           ` Nathan Lynch
     [not found]                             ` <1267661777.3559.11.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-03-04  3:05                               ` Serge E. Hallyn
2010-03-04 15:05                                 ` Serge E. Hallyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100303234448.GA27869@us.ibm.com \
    --to=serue-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=ntl-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox