Ho uno script che deve essere eseguito in uno spazio dei nomi di rete (ip netns exec) e ho scritto un file di servizio systemd.
Non riesce comunque a iniziare, journalctl -xe riporta:
ip [7918]: exec di "/usr/share/stats/run_collect.sh" non riuscito: autorizzazione negata
Il file di servizio sta eseguendo il comando as (è un servizio istanziato)
ExecStart=/sbin/ip netns exec ns%i /usr/share/stats/run_collect.sh %i
Selinux è in fase di applicazione, e per farlo funzionare devo correre semanage permissive -a ifconfig_t
.
Senza che lo script non venga eseguito,
Nei miei diversi tentativi, sono entrato in una situazione, che non posso riprodurre, dove è iniziata la sceneggiatura ma
quindi non è riuscito perché il processo tcpdump avviato dallo script ha mancato il contesto di selinux corretto
scrivi su un file di log in / var / log / stats /. (Penso di essere entrato in quella situazione quando l'ho rilasciato semanage fcontext -a -t ifconfig_exec_t /usr/share/stats/run_collect.sh
e applicandolo con restorecon -Frvv /usr/share/stats/
. Ripetere questo non funziona però ....)
Qual è l'approccio migliore per farlo funzionare senza impostare il dominio ifconfig_t come permissivo?