Включите SELinux на контейнере Centos7 LXC с хостом Ubuntu 14.04

Я пытаюсь установить контейнер LXC для тестирования, которое выполняет CentOS 7 с SELinux, позволенным отвечать требованиям для теста, который я пытаюсь запустить.

Несмотря на все мои усилия, я все еще не могу заставить вывод getenforce возвращать что-либо кроме "Отключенного".

Контейнер был первоначально создан с помощью следующей команды lxc:

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

Я установил контейнерный файл конфигурации для использования fedora.common.conf для решения вопросов с медленным запуском и выполнил некоторые другие биты начальной загрузки, но ничто, о чем я могу думать, который произвел бы SELinux.

Я пробовал/проверял следующее, чтобы попытаться получить его, включил (и вероятно еще некоторый материал, который я забыл!)

  • Установка SELINUX=enforcing в/etc/selinux/config
  • Удаление символьной ссылки на/bin/false, что шаблон/usr/sbin/selinuxenabled, на который указывают, к и восстановленный исходный файл
  • Набор/selinux/enforce к 1
  • Установленный selinux-policy-targeted пакет, который ранее отсутствовал
  • Проверенный мое ядро поддерживает SELinux
  • Созданный/.autorelabel, чтобы попытаться повторно маркировать файловую систему, которая, кажется, не была взята на перезапуске контейнера (файл все еще там),
  • Попробованный для использования fixfiles для перемаркировки к фс вручную, которая приводит к ошибке при указывании, что SELinux не включен.

Я еще не пошел, насколько включить SELinux на хосте, поскольку я вполне уверен, я видел, что контейнеры докера выполняют CentOS7, которым удается выполнить его без хоста, нуждающегося в установленном SELinux или выполнение.

Я погуглил все, о чем я могу думать и имел поиск здесь и не могу найти никакие другие предложения относительно того, почему я не могу заставить SELinux включать в этом контейнере LXC, кто-либо может помочь?

Я примерно готов сдаться и создать хост CentOS7 к работе моих контейнеров CentOS7, но я действительно надеюсь, что это не будет необходимо.

3
задан 3 August 2015 в 17:31
2 ответа

Selinux должен работать на вашем физическом хосте, потому что Selinux работает на стороне ядра, а ваш контейнер использует ядро ​​совместно с физическим хостом.

Контейнер это нормальный процесс, который выполняется в другом пространстве имен

8
ответ дан 3 December 2019 в 04:49

SELinux не имеет пространства имен, поэтому отдельные контейнеры не могут иметь свои собственные отдельные политики SELinux. SELinux всегда будет казаться «отключенным» в контейнере, хотя он запущен на хосте.

Для получения дополнительной информации см. Введение в контейнеры Linux .

Если вы используете политики SELinux тестируете, используйте полную виртуальную машину.

3
ответ дан 3 December 2019 в 04:49

Теги

Похожие вопросы