Настройка разрешений SELinux на семафоры IPC (SVS-V)


У меня есть куча программ, которые используют семафоры IPC для взаимодействия (semget).

Одна из программ-это модуль Apache, который работает в (некотором) ограниченном контексте SELinux (который я не очень хорошо понимаю).

Модуль способен корректно взаимодействовать с любыми обычными файлами, если, конечно, файлы имеют соответствующий контекст безопасности SELinux.

Однако-когда мой (модуль) обращается к семафору IPC, вызов semget завершается ошибкой с EPERM. Когда SELinux выключен, я не получаю эту ошибку.

Итак, очевидно, что мне нужно что-то сделать, чтобы установить какой-то контекст безопасности SELinux или что-то на семафоре, чтобы это сработало. Если бы это был обычный файл, я мог бы просто назвать его "chcon". Поскольку это семафор IPC System-V, я не могу этого сделать.

Что я могу сделать, чтобы это сработало??

2   12   2011-09-27 21:04:53

2 ответа:

Основные шаги для получения SELinux работы с необходимыми изменениями:

  1. включить разрешительный режим
  2. отрицания захвата
  3. Добавьте новый модуль политики или измените существующий модуль политики
  4. включить принудительный режим и тест

Точное выполнение этих шагов зависит от используемого дистрибутива Linux; ниже приведены ссылки на CentOS, Debian, Дженту, RedHat иUbuntu . Вы можно также найти информацию SELinux из NSA . Лучшая документация, которую я нашел, - от Gentoo: step 1, Шаг 2, Шаг 3, Шаг 4 .

Как @smassey отметил, вам, скорее всего, потребуется изменить некоторые разрешения IPC.

SELinux имеет настройку persmission не только для обычных файлов, но и для устройств и специальных файлов.

Http://seedit.sourceforge.net/doc/access_vectors/access_vectors.html#SECTION00044000000000000000 это то, что ты ищешь. Дайте разрешение на чтение/запись/etc объекту "sem".

Ура