在Ubuntu 14.04主机上启用Centos7 LXC容器上的SELinux

我试图设置一个LXC容器进行testing,在启用SELinux的情况下运行CentOS 7,以满足我试图运行的testing的要求。

尽pipe我的努力,我仍然无法得到getenforce的输出返回除“禁用”之外的任何东西。

容器最初使用以下lxc命令创build:

sudo lxc-create -n <name> -t download -- -d centos -r 7 -a amd64 

我已经设置了容器configuration文件来使用fedora.common.conf来解决缓慢启动的问题,并且执行了一些其他的bootstrapping,但是我没有想到会影响SELinux。

我试过/检查以下尝试启用它(可能还有一些我忘记的东西!)

  • 设置SELINUX =在/ etc / selinux / config中强制执行
  • 删除模板指向/ usr / sbin / selinuxenabled的/ bin / false的符号链接并恢复原始文件
  • 设置/ selinux /强制为1
  • 安装了以前缺less的selinux-policy-targeted软件包
  • 检查了我的内核支持SELinux
  • 创build/.autorelabel来尝试重新标记文件系统,该文件系统在重启容器时看起来没有被拾取(文件仍然存在)
  • 试图使用fixfiles手动重新标记为fs,这会导致错误,指出SELinux未启用。

我还没有在主机上启用SELinux,因为我非常确定我已经看到运行CentOS7的docker容器,它可以在没有安装或运行SELinux的主机的情况下运行它。

我search了一切我能想到的,并在这里search,找不到任何其他的build议,为什么我不能让SELinux在这个LXC容器内启用,任何人都可以帮忙吗?

我只是准备放弃并创build一个CentOS7主机来运行我的CentOS7容器,但我真的希望这不是必要的。

Selinux需要在你的物理主机上运行,​​因为Selinux运行在内核端,你的容器与物理主机共享内核。

Container是在其他namespace中运行的正常进程

SELinux没有命名空间,所以单个容器不能有自己的SELinux策略。 尽pipeSELinux在主机上运行,​​但SELinux在容器中始终显示为“禁用”。

有关更多信息,请参阅Linux容器简介 。

如果是您正在testing的SELinux策略,则使用完整的虚拟机。