Initial context for init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Quick question is:

In the targeted policy should init run SystemHigh as it does in the mls policy?

The background:

We're setting up a targeted system where we confine all users and remove the unconfined policy module, but we also enable polyinstantiation of /tmp and /var/tmp.

If we ssh in as a staff_u user phil and elevate to root/sysadm_r then we have a context of:

staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023

And therefore /var/tmp is:

drwxrwxrwt. root root system_u:object_r:tmp_t:s0-s0:c0.c1023 /var/tmp

Which is really:

drwxrwxrwt. root root system_u:object_r:tmp_t:s0-s0:c0.c1023 /var/tmp-inst/system_u:object_r:tmp_t:s0-s0:c0.c1023_phil

The real /var/tmp is:

drwxrwxrwt. root root system_u:object_r:tmp_t:s0 /var/tmp

Now if we use run_init to update an RPM that contains a post install script, rpm can't create the temporary script file:

# run_init bash -c 'rpm -i --force /root/libselinux-2.0.94-7.el6.x86_64.rpm'
Authenticating phil.
Password:
error: error creating temporary file /var/tmp/rpm-tmp.atkHTf: Permission denied
error: Couldn't create temporary file for %post(libselinux-2.0.94-7.el6.x86_64): Permission denied

Note: you need to use run_init as the rpm might restart a service, e.g. the sssd rpm.

We've traced this to the /etc/selinux/targeted/contexts/initrc_context file which contains:

system_u:system_r:initrc_t:s0

So we transition to initrc_t and then to rpm_t without any categories, but because the polyinstantiated /var/tmp directory has c0.c1023 we get denied. Normally in targeted init runs unconfined, but we've removed this.

type=AVC msg=audit(1467342325.016:716): avc:  denied  { read } for  pid=2779 comm="rpm" name="system_u:object_r:tmp_t:s0-s0:c0.c1023_phil" dev=dm-0 ino=1966082 scontext=system_u:system_r:rpm_t:s0 tcontext=system_u:object_r:tmp_t:s0-s0:c0.c1023 tclass=dir

It works if we change initrc_context to:

system_u:system_r:initrc_t:s0-s0:c0.c1023

We don't see the issue under mls because the default initrc_context is:

system_u:system_r:initrc_t:s0-s15:c0.c1023

We've traces this back through the selinux-policy src RPM and to the upstream refpolicy and see that config/appconfig-mcs/initrc_context is:

system_u:system_r:initrc_t:s0

whereas config/appconfig-mls/initrc_context is:

system_u:system_r:initrc_t:s0-mls_systemhigh

So under mls init's context is SystemHigh, but under mcs/targeted it doesn't have any categories.

So the long question is should config/appconfig-mcs/initrc_context really be:

system_u:system_r:initrc_t:mcs_systemhigh

as it seems odd that the more secure mls policy would run init at SystemHigh but targeted doesn't.

Thanks

Phil Seeley

--
selinux mailing list
selinux@xxxxxxxxxxxxxxxxxxxxxxx
https://lists.fedoraproject.org/admin/lists/selinux@xxxxxxxxxxxxxxxxxxxxxxx

[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux