У меня есть проприетарное программное обеспечение, которым владеет моя компания, которому нужен доступ к файлу корневого уровня. Мы назовем его /secfile как это связано с безопасностью / лицензией. Система запускает демон, который записывает обновленную информацию в /secfile . Этот демон, если ему запрещено обновлять /secfile , делает недействительной соответствующую лицензию, поскольку он предполагает нечестную игру.

Как я могу заставить SELinux разрешить демону, который находится в /bin/secdaemon , доступ к /secfile?

Единственное другое приложение, которому нужен доступ (который в настоящее время не ограничен) к /secfile это /usr/bin/licensemanager .

1 ответ1

3

Ну, самый простой способ - отключить SELinux, но я не рекомендую:

setenforce 0

Или вы можете создать правило, позволяющее ему писать, выполнять или делать то, что ему нужно, и пока оно заблокировано. Для этого проверьте файл системного журнала и скопируйте строку, которая "запрещена", она должна выглядеть примерно так:

audit(...): avc:  denied  { write } for  pid=27984 comm="httpd" name="httpd" dev=sda6 ino=307469 scontext=root:system_r:httpd_t:s0 tcontext=system_u:object_r:usr_t:s0 tclass=...

Скопируйте его и выполните следующую команду:

audit2allow -M local << _EOF_
(paste the content)
_EOF_

Затем запустите:

semodule -i local.pp

Это создаст для него постоянное правило, поэтому вам не нужно отключать SELinux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .