2

У меня есть скрипт, который должен работать в сетевом пространстве имен (ip netns exec), и я написал файл службы systemd.

Журнал не запускается, однако, journalctl -xe сообщает:

ip [7918]: сбой exec из "/usr/share/stats/run_collect.sh": отказано в разрешении

Сервисный файл выполняет команду как (это инстанцированный сервис)

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

Selinux находится в режиме поддержки, и чтобы заставить его работать, мне нужно запустить semanage permissive -a ifconfig_t .
Без этого сценарий не выполняется,

В моих разных попытках я попал в ситуацию, которую я не могу воспроизвести, когда скрипт запускается, но затем завершается неудачно, потому что процесс tcpdump, запущенный скриптом, пропустил правильный контекст selinux для записи в файл журнала в /var /log /stats /, (Я думаю, что попал в ту ситуацию, когда я semanage fcontext -a -t ifconfig_exec_t /usr/share/stats/run_collect.sh и применил его с помощью restorecon -Frvv /usr/share/stats/ . Повторение этого не работает, хотя ....)

Каков наилучший подход, чтобы заставить это работать без установки домена ifconfig_t как разрешающего?

0