Я написал сервис / отдельное двоичное приложение, которое пытаюсь запустить на Fedora 24, оно запускается с использованием systemd, двоичный файл развернут на /srv/bot
эта служба / приложение, которое я написал, должно создавать / открывать / читать и переименовывать файлы в этом каталоге.
Сначала я начал создавать новую политику на основе SELinux: разрешить процессу создавать любой файл в определенном каталоге
но когда мое приложение нужно было переименовать, вывод имел предупреждение:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Я погуглил и обнаружил, что должен использовать более конкретную метку SELinux, чем базовый тип, но во всех онлайн-примерах показаны существующие метки из httpd / nginx / etc.
Есть ли способ, которым я могу создать собственную метку только для моего собственного приложения?
Моя идея состоит в том, чтобы создать что-то вроде myapp_var_t, используйте
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
и пользовательский .pp
файл, который будет использовать этот пользовательский тип
Если есть лучший способ решить эту проблему, это тоже работает.
Спасибо
Обновить
После долгих поисков я думаю, что правильный термин для того, что я хочу сделать, - это создать новый, types
который привел меня к
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
который в основном говорит, беги
sepolgen /path/to/binary
и я смог получить шаблон, который я мог бы затем скомпилировать в файл pp и загрузить, все еще получая некоторые ошибки, но похоже, что я ближе к тому, что я хочу сделать.
Если я заставлю это работать, я обновлю этот пост