Настройка разрешений SELinux для (SVS-V) семафоров IPC - PullRequest
12 голосов
/ 27 сентября 2011

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Основные шаги, чтобы заставить SELinux работать с нужными вам изменениями:

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

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

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

0 голосов
/ 07 октября 2011

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

http://seedit.sourceforge.net/doc/access_vectors/access_vectors.html#SECTION00044000000000000000 - это то, что вы ищете. Предоставьте права на чтение / запись / etc объекту "sem".

Приветствия

...