executando o script bash no namespace da rede com o systemd e o selinux impingindo?

2

Eu tenho um script que precisa ser executado em um namespace de rede (ip netns exec) e escrevi um arquivo de serviço systemd.

Ele não inicia, no entanto, os relatórios journalctl -xe:

ip [7918]: falha na execução de "/usr/share/stats/run_collect.sh": Permissão negada

O arquivo de serviço está executando o comando como (é um serviço instanciado)

ExecStart=/sbin/ip netns exec ns%i /usr/share/stats/run_collect.sh %i

Selinux está no modo enforcing, e para que funcione eu tenho que executar semanage permissive -a ifconfig_t .
Sem isso o script não é executado,

Nas minhas diferentes tentativas, entrei em uma situação que não consigo reproduzir, onde o script começou, mas então falhou porque o processo tcpdump iniciado pelo script perdeu o contexto selinux correto para gravar em um arquivo de log em / var / log / stats /. (Eu acho que cheguei nessa situação quando eu tinha emitido semanage fcontext -a -t ifconfig_exec_t /usr/share/stats/run_collect.sh e aplicando-o com restorecon -Frvv /usr/share/stats/ . Repetir isso não funciona embora ...)

Qual é a melhor abordagem para conseguir que isso funcione sem definir o domínio ifconfig_t como permissivo?

    
por user300811 02.02.2017 / 09:36

0 respostas