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.
next prev parent 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.