Обязательно проверьте /var/log/audit/audit.log
на наличие предупреждений selinux. Он может предложить, какую политику включить.
В противном случае вы можете установить SELinux в разрешительный режим, а затем использовать вышеупомянутый файл журнала для создания пользовательской политики, охватывающей все потребности вашего приложения. Для этого установите SELinux в разрешающий режим, используйте все функции вашего кода, а затем используйте audit2allow для создания пользовательской политики.
Затем вы можете объединить и распространить файл политики с вашим кодом, чтобы SELinux разрешал все и только те специальные разрешения, которые необходимы вашему коду:
# generate a custom policy
grep "AVC" /var/log/audit/audit.log | audit2allow -M yourapp
# install that policy
semodule -i yourapp.pp
Что бы вы ни делали, не приступайте к работе с выключенным SELinux!
Рекомендуем посмотреть это замечательное введение в SELinux:https://www.youtube.com/watch?v=_WOKRaM-HI4
Вот так:
#!/usr/bin/env bash
trap 'kill $(jobs -p)' ERR
set -e
while true; do echo "test"; sleep 1; done &
echo "done"
ueoa
#!/bin/bash
set -e
function cleanup()
{
kill $!
}
trap cleanup ERR
while true; do echo "test"; sleep 1; done &
echo "done"
ueoa