Как я могу сделать SELinux разрешить доступ к файлу?

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

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

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

1 ответ

Решение

Ну, самый простой способ - отключить 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.

Другие вопросы по тегам