![executando o script bash no namespace da rede com aplicação do systemd e selinux?](https://rvso.com/image/1520732/executando%20o%20script%20bash%20no%20namespace%20da%20rede%20com%20aplica%C3%A7%C3%A3o%20do%20systemd%20e%20selinux%3F.png)
Eu tenho um script que precisa ser executado em um namespace de rede (ip netns exec) e escrevi um arquivo de serviço systemd.
No entanto, ele falha ao iniciar, reporta 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
O Selinux está no modo de execução e, para fazê-lo funcionar, preciso executar o semanage permissive -a ifconfig_t
.
Sem isso o script não é executado,
Em minhas diferentes tentativas, entrei em uma situação que não consigo reproduzir, onde o script foi iniciado, mas falhou porque o processo tcpdump iniciado pelo script perdeu o contexto selinux correto para gravar em um arquivo de log em /var/log/stats/ . (Acho que entrei nessa situação quando emiti
semanage fcontext -a -t ifconfig_exec_t /usr/share/stats/run_collect.sh
e apliquei com restorecon -Frvv /usr/share/stats/
. Repetir isso não funciona...)
Qual é a melhor abordagem para fazer isso funcionar sem definir o domínio ifconfig_t como permissivo?