[lxc-devel] [PATCH 1/4] oracle template: further disable selinux in ol5 container

Dwight Engen dwight.engen at oracle.com
Mon Nov 18 17:28:00 UTC 2013


Signed-off-by: Dwight Engen <dwight.engen at oracle.com>
---
 templates/lxc-oracle.in | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/templates/lxc-oracle.in b/templates/lxc-oracle.in
index 78d99ee..106150c 100644
--- a/templates/lxc-oracle.in
+++ b/templates/lxc-oracle.in
@@ -51,11 +51,17 @@ container_rootfs_configure()
 {
     echo "Configuring container for Oracle Linux $container_release_major.$container_release_minor"
 
-    # "disable" selinux. init in OL 5 honors /etc/selinux/config. note that
+    # "disable" selinux in the guest. The policy in the container isn't
+    # likely to match the hosts (unless host == guest exactly) and the
+    # kernel can only be enforcing one policy.
+    #
+    # The OL 5 init honors /etc/selinux/config, but note that
     # this doesnt actually disable it if it's enabled in the host, since
     # libselinux::is_selinux_enabled() in the guest will check
     # /proc/filesystems and see selinuxfs, thus reporting that it is on
-    # (ie. check the output of sestatus in the guest)
+    # (ie. check the output of sestatus in the guest). We also replace
+    # /usr/sbin/selinuxenabled with a symlink to /bin/false so that init
+    # scripts (ie. mcstransd) that call that think selinux is disabled.
     mkdir -p $container_rootfs/selinux
     echo 0 > $container_rootfs/selinux/enforce
     if [ -e $container_rootfs/etc/selinux/config ]; then
@@ -68,6 +74,11 @@ container_rootfs_configure()
     sed -i 's|session[ \t]*required[ \t]*pam_selinux.so[ \t]*open|#session required pam_selinux.so open|' $container_rootfs/etc/pam.d/login
     sed -i 's|session[ \t]*required[ \t]*pam_loginuid.so|#session required pam_loginuid.so|' $container_rootfs/etc/pam.d/login
 
+    if [ -f $container_rootfs/usr/sbin/selinuxenabled ]; then
+        mv $container_rootfs/usr/sbin/selinuxenabled $container_rootfs/usr/sbin/selinuxenabled.lxcorig
+        ln -s /bin/false $container_rootfs/usr/sbin/selinuxenabled
+    fi
+
     # silence error in checking for selinux
     sed -i 's|cat /proc/self/attr/current|cat /proc/self/attr/current 2>/dev/null|' $container_rootfs/etc/rc.sysinit
     sed -i 's|cat /proc/self/attr/current|cat /proc/self/attr/current 2>/dev/null|' $container_rootfs/etc/rc.d/rc.sysinit
-- 
1.8.3.1





More information about the lxc-devel mailing list