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

Права на запуск сервиса systemd для selinux?

Пытаюсь сделать consul.service для запуска примерно так:
[Unit]
Description=Consul service discovery agent
Requires=network-online.target
After=network.target

[Service]
User=consul
Group=consul
PIDFile=/run/consul.pid
Restart=on-failure
Environment=GOMAXPROCS=2
ExecStart=/usr/local/bin/consul agent $OPTIONS -config-dir=/etc/consul.d
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGINT
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target

Вроде бы простой сервис, а на fedora 28 не запускается.
Логи journal -u consul:
Oct 17 10:20:06 consul1 systemd[16572]: consul.service: Failed to execute command: Permission denied
Oct 17 10:20:06 consul1 systemd[16572]: consul.service: Failed at step EXEC spawning /usr/local/bin/consul: Permission denied
Oct 17 10:20:06 consul1 systemd[1]: consul.service: Main process exited, code=exited, status=203/EXEC
Oct 17 10:20:06 consul1 systemd[1]: consul.service: Failed with result 'exit-code'.
Oct 17 10:20:07 consul1 systemd[1]: consul.service: Service hold-off time over, scheduling restart.
Oct 17 10:20:07 consul1 systemd[1]: consul.service: Scheduled restart job, restart counter is at 4.

Логи cat /var/log/audit/audit.log:
type=AVC msg=audit(1539778184.232:1302): avc:  denied  { execute } for  pid=16884 comm="(consul)" name="consul" dev="vda1" ino=1019 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:unconfined_exec_t:s0 tclass=file permissive=0


UPD1 политики consul из репы
[root@consul1 ~]# ls -Z /usr/bin/consul 
system_u:object_r:bin_t:s0 /usr/bin/consul

Политики consul скаченного
[root@consul1 ~]# ls -Z /tmp/consul
unconfined_u:object_r:user_tmp_t:s0 /tmp/consul


Можно ли как-то дать прав на запуск отдельного сервиса? Отключать selinux мы конечно же не будем.
Костыль - поставить consul из репы и заменить бинарник на новый работает с этим конфигом сервиса.
  • Вопрос задан
  • 1528 просмотров
Подписаться 2 Сложный Комментировать
Решения вопроса 1
inf
@inf Автор вопроса
DevOps Engineer
Правильный ответ:
[user@server ~]# chcon -u system_u -t bin_t ./consul

После этого systemd запускает бинарники
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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