Настройка разрешений SELinux для (SVS-V) Семафоров IPC
У меня есть куча программ, которые используют семафоры IPC для взаимодействия (semget).
Одна из программ - это модуль Apache, который работает в (каком-то) ограниченном контексте SELinux (который я не слишком хорошо понимаю).
Модуль способен нормально взаимодействовать с любыми регулярными файлами, если, конечно, файлы имеют соответствующий контекст безопасности SELinux.
Однако - когда мой (модуль) переходит на доступ к семафору IPC, вызов semget завершается с EPERM. Когда SELinux выключен, я не получаю эту ошибку.
Итак - очевидно, что мне нужно что-то сделать, чтобы установить какой-то режим безопасности SELinux или что-то на Семафор, чтобы это работало. Если это был обычный файл, я мог бы просто называть его "chcon". Поскольку это System-V IPC Semaphore, я не могу этого сделать.
Что я могу сделать, чтобы сделать эту работу?
Ответы
Ответ 1
Основные шаги для получения SELinux, работающего с необходимыми изменениями:
- Включить разрешающий режим
- Захват отказов
- Добавить новый модуль политики или изменить существующий политический модуль
- Включение режима принудительной проверки и проверки
Точно, как это сделать, зависит от того, какой дистрибутив Linux вы используете; здесь приведены ссылки для CentOS, Debian, Gentoo, RedHat и Ubuntu. Вы также можете найти информацию SELinux из NSA. Лучшая документация, которую я нашел, - это Gentoo: шаг 1, шаг 2, шаг 3, шаг 4.
Как @smassey отметил, вам, скорее всего, нужно будет изменить некоторые IPC.
Ответ 2
SELinux имеет настройку persmission для более чем обычных файлов, а также для устройств и специальных файлов.
http://seedit.sourceforge.net/doc/access_vectors/access_vectors.html#SECTION00044000000000000000 - это то, что вы ищете. Дайте права на чтение/запись/etc для объекта sem.
Приветствия