All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell Coker <russell@coker.com.au>
To: Stephen Smalley <sds@epoch.ncsc.mil>
Cc: SE Linux <selinux@tycho.nsa.gov>
Subject: Re: init patch for loading policy
Date: Wed, 22 Oct 2003 00:43:09 +1000	[thread overview]
Message-ID: <200310220043.09925.russell@coker.com.au> (raw)
In-Reply-To: <1066739366.27065.39.camel@moss-spartans.epoch.ncsc.mil>

On Tue, 21 Oct 2003 22:29, Stephen Smalley wrote:
> On Mon, 2003-10-20 at 20:52, Russell Coker wrote:
> > Firstly we would need to test that init will actually respond correctly
> > to "telinit u" while it's in that stage.  This is something I am
> > concerned about, particularly regarding race conditions regarding the
> > completion of rc.sysinit (although I guess it's unlikely that rc.sysinit
> > will complete before init restarts).
>
> Note that I subsequently suggested (in a reply to Dan on the list) using
> a separate sysinit entry with its own script for performing the initial
> policy load and restarting init, followed by the ordinary sysinit entry
> (or alternately, a bootwait entry if you can't ensure ordering among
> multiple sysinit entries) that executes rc.sysinit.

OK, I've done some tests of this.  "telinit u" does not work before the 
rc.sysinit script is complete (no read-write file system for communication).

This means that init will be in kernel_t for the duration of rc.sysinit which 
means that some domains will need to send sigchld to kernel_t (syslogd_t is 
one example, but there are others, and some of them are conditional upon the 
system configuration - I may have to allow all daemon domains to send sigchld 
to kernel_t).

init needs to create /dev/initctl as kernel_t, and it locks the utmp file and 
opens wtmp for writing before it can be signalled to re-exec itself.

#!/bin/bash
mount -n /selinux
/usr/sbin/load_policy /etc/security/selinux/policy.15
exec /etc/rc.d/rc.sysinit

I put the above in /etc/rc.d/rc.sysinit.selinux and made init run that instead 
of /etc/rc.d/rc.sysinit.selinux.  When rc.sysinit is exec'd it will be in 
initrc_t as I have put in the following policy:
domain_auto_trans(kernel_t, initrc_exec_t, initrc_t)

One final problem I have not solved yet is messages such as:
avc:  denied  { use } for  pid=391 exe=/usr/sbin/updfstab path=/dev/console 
dev=62:00 ino=160079 scontext=system_u:system_r:updfstab_t 
tcontext=system_u:system_r:kernel_t tclass=fd

I modified rc.sysinit so that when it re-runs itself through /sbin/initlog it 
redirects stdin, stdout, and stderr to /dev/console (thus the three main file 
handles only need to be inherited from initrc_t).  But that doesn't help.  
The results I have so far indicate that this approach has significant 
problems.

Diverting /sbin/init with a shell script works better than this.

-- 
http://www.coker.com.au/selinux/   My NSA Security Enhanced Linux packages
http://www.coker.com.au/bonnie++/  Bonnie++ hard drive benchmark
http://www.coker.com.au/postal/    Postal SMTP/POP benchmark
http://www.coker.com.au/~russell/  My home page


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

  reply	other threads:[~2003-10-21 14:45 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-19 15:48 init patch for loading policy Russell Coker
2003-10-20  8:21 ` Carsten Grohmann
2003-10-20 18:02 ` Stephen Smalley
2003-10-20 20:10   ` Daniel J Walsh
2003-10-20 20:46     ` Stephen Smalley
2003-10-20 20:56       ` Daniel J Walsh
2003-10-21 12:19         ` Stephen Smalley
2003-10-21  0:52   ` Russell Coker
2003-10-21 12:29     ` Stephen Smalley
2003-10-21 14:43       ` Russell Coker [this message]
2003-10-21 14:59         ` Stephen Smalley
2003-10-21 16:00           ` Russell Coker
2003-10-21 18:38             ` Daniel J Walsh
2003-10-21 20:14             ` Bastian Blank
2003-10-21 17:50           ` Daniel J Walsh
2003-10-22 22:31             ` Joubert Berger
2003-10-23  1:42               ` Russell Coker
2003-10-21 18:07           ` Daniel J Walsh
2003-10-21 18:54             ` Stephen Smalley
2003-10-21 19:56               ` Stephen Smalley
2003-10-21 12:32     ` Stephen Smalley
2003-10-21 13:56       ` Russell Coker
2003-10-20 20:47 ` Bastian Blank
2003-10-21  0:57   ` Russell Coker
2003-10-21  6:26     ` Bastian Blank

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=200310220043.09925.russell@coker.com.au \
    --to=russell@coker.com.au \
    --cc=sds@epoch.ncsc.mil \
    --cc=selinux@tycho.nsa.gov \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.