Задать вопрос
bbbbbbbbbbbbbbbbbbbbblobb
@bbbbbbbbbbbbbbbbbbbbblobb

Как настроить SELinux для собственной службы?

Имеется сервер на AlmaLinux 9. Есть служба, которая запускает uvicorn. С выключенным SELinux все работает.
PS. особо не работал с rpm-подобными, основная масса debian/ubuntu/astra
app.service
[Unit]
Description=App Service
After=network.target

[Service]
User=app
Group=app
WorkingDirectory=/var/www/app
ExecStart=/var/www/app/venv/bin/uvicorn app:app --host 127.0.0.1 --port 8000
Restart=always

[Install]
WantedBy=multi-user.target
Понимаю что можно оставить SELinux выключенным, но хотелось бы разобраться в проблеме.
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Для начала нужно убедится что верно выполнена установка приложения и его исполняемый файл (uvicorn) находится в правильном месте. Убедится что запускаемый файл имеет верную метку: `ls -Z /var/www/app/venv/bin/uvicorn` (должна быть `httpd_exec_t`, т.к. в этом случае произойдет переход в домен `httpd_t` где будут доступны стандартные правила для web-сервера), если отличается, то изменить её: `semanage fcontext -a -t httpd_exec_t "/var/www/app/venv/bin/uvicorn"`, проверьте метки в каталоге /var/www/app и командой можно восстановить рекурсивно все метки `restorecon -RFv /var/www`. Обычно установка правильных меток решает проблему. Т.к. порт 8000 относится к типу `unreserved_port_t`, его придется сменить на `http_port_t`: `semanage port -a -t http_port_t -p tcp 8000`. Перезапустить службу и проверить отказы AVC: `ausearch -m avc -ts recent`. Подробнее можно почитать здесь: https://docs.redhat.com/en/documentation/red_hat_e...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы