Как создать исключение SELinux для отдельных файлов

Я использую инструмент мониторинга, а в одной из моих систем, который проверяется удаленно, он вызывает скрипт, который, в свою очередь, запускает systemctl для проверки состояния службы. Это не работает, пока я не поставлю SELinux в разрешающем режиме. Однако я не смогу оставить эту систему в разрешающем режиме. Мне нужно использовать семантику для исключения и вернуть систему в состояние принудительного исполнения. Раньше я использовал semanage для процесса, но никогда не для файла. Я просматривал справочную страницу и искал походы, но я не могу понять, какую именно команду мне нужно использовать. Так что скажите, что мне нужно разрешить скрипт под названием «run_this_script» в папке / usr / lib64 / application / plugin, какова команда, которую я буду использовать с помощью семанажа?

EDIT – просто для того, чтобы больше контекста вокруг того, что я видел в журналах аудита, вот фрагмент.

type=AVC msg=audit(1446051455.169:3313): avc: denied { execute } for pid=15388 comm="check_init_serv" name="systemctl" dev="dm-1" ino=2101040 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file type=SYSCALL msg=audit(1446051455.169:3313): arch=c000003e syscall=59 success=no exit=-13 a0=2098450 a1=209ba50 a2=209c680 a3=7fff573ff5b0 items=0 ppid=15386 pid=15388 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty= (none) ses=4294967295 comm="check_init_serv" exe="/usr/bin/bash" subj=system_u:system_r:nrpe_t:s0 key=(null) type=AVC msg=audit(1446051455.169:3314): avc: denied { getattr } for pid=15388 comm="check_init_serv" path="/usr/bin/systemctl" dev="dm-1" ino=2101040 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file type=SYSCALL msg=audit(1446051455.169:3314): arch=c000003e syscall=4 success=no exit=-13 a0=2098450 a1=7fff573ff780 a2=7fff573ff780 a3=7fff573ff5b0 items=0 ppid=15386 pid=15388 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="check_init_serv" exe="/usr/bin/bash" subj=system_u:system_r:nrpe_t:s0 key=(null) type=AVC msg=audit(1446051455.169:3315): avc: denied { getattr } for pid=15388 comm="check_init_serv" path="/usr/bin/systemctl" dev="dm-1" ino=2101040 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file type=SYSCALL msg=audit(1446051455.169:3315): arch=c000003e syscall=4 success=no exit=-13 a0=2098450 a1=7fff573ff760 a2=7fff573ff760 a3=7fff573ff5b0 items=0 ppid=15386 pid=15388 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="check_init_serv" exe="/usr/bin/bash" subj=system_u:system_r:nrpe_t:s0 key=(null) type=AVC msg=audit(1446053257.457:3401): avc: denied { read } for pid=15647 comm="systemctl" name="journal" dev="tmpfs" ino=11584 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:syslogd_var_run_t:s0 tclass=dir 

One Solution collect form web for “Как создать исключение SELinux для отдельных файлов”

Не тестировал, но ..

найдите audit2allow -a имя с помощью audit2allow -a , а затем запустите

  • Активировать пакет политики: semodule -i <module_name>.pp
  • проверьте загруженный модуль: semanage module -l | grep <module_name> semanage module -l | grep <module_name>
  • затем вернитесь к принудительному исполнению: setenforce 1
  • SELinux: Как создать пользовательский ярлык для файлов?
  • Пользователь selinux добавляет постепенное замедление
  • Невозможно изменить или удалить пользователя SELinux
  • SSH AuthorizedKeysCommand и SELinux
  • Служба httpd не запускается - fcgid не может создать общую память
  • Ошибка при создании libxcrypt
  • Запуск X без доступа к / dev
  • Как сделать restorecon -f рекурсивно?
  • SELinux Block Apache
  • Исходный доступ SELinux к другим сайтам с ограничениями
  • Терминал Gnome не запускается
  • Linux и Unix - лучшая ОС в мире.