eseguire lo script di bash nello spazio dei nomi di rete con systemd e selinux enforcing?


2

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?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.