SELinux: позволяет процессу создавать любой файл в определенном каталоге

У меня есть сценарий, который при вызове приведет к тому, что содержимое dmesg будет записано в файл, причем имя файла в основном является меткой времени. SELinux предотвращает это. Следуя рекомендациям приложения для устранения неполадок SELinux Fedora, я попробовал:

grep dmesg /var/log/audit/audit.log | audit2allow -M mypol

semodule -i mypol.pp

Однако, похоже, это не работает, возможно, потому, что имя создаваемого файла отличается каждый раз. Итак, как я могу сказать SELinux, чтобы позволить dmesg создавать (и записывать) любой файл в определенном каталоге? Или сказать, что этот сценарий (и все процессы, которые он порождает) может сделать это?

  • SELinux не регистрируется нигде
  • SELinux войти в Debian
  • Неверная роль и тип при входе в систему
  • Ошибка SELinux при установке Awesome WM-пакетов
  • Резервная система seLinux работает строго
  • Служба httpd не запускается - fcgid не может создать общую память
  • SELinux: Как создать пользовательский ярлык для файлов?
  • selinux, dovecot и сито
  • 2 Solutions collect form web for “SELinux: позволяет процессу создавать любой файл в определенном каталоге”

    Вам нужно научиться фильтровать отклонения AVC и как написать настраиваемый политический модуль, чтобы разрешить доступ к определенному действию (в этом случае вы сценарий).

    Я бы начал с удаления модуля, который вы вставили выше, чтобы запустить a-new:

     # semodule -r mymodule.pp 

    Затем запустите свой скрипт:

     # date && ./my_script.sh 

    Вызов date полезен для фильтрации отказов AVC на основе временной метки.

    Затем используйте обычный метод для отладки AVC-отказов, который использует команду ausearch(8) :

     # ausearch -m avc -ts $timestamp | audit2allow 

    Проверьте man-страницу для получения дополнительной информации о переключателях, которые вы можете использовать, в -ts флаг -ts .

    С помощью этой информации вы узнаете, что отрицается на основе существующей политики.

    Теперь вы должны определить, предоставлять ли этот доступ или нет. Предположим, вы хотите предоставить доступ. Вам нужно будет создать настраиваемый политический модуль, описывающий правила, определяющие доступ, который вы хотите предоставить. Это более или менее просто в зависимости от сложности вашего скрипта:

     # ausearch -m avc -ts 10:40:00 | audit2allow -m my_script > my_script.te 

    Это приведет к описанию type enforcement .

    Вы должны приступить к просмотру кода для обеспечения его правильности и компиляции кода type enforcement в module :

     # checkmodule -M -m -o my_script.mod my_script.te 

    Модуль должен быть упакован в policy package чтобы вы могли его загрузить и выгрузить по своему усмотрению:

     # semodule_package -o my_script.pp -m my_script.mod 

    Теперь вы можете загрузить политику, используя:

     # semodule -i my_script.pp 

    Проверьте правильность загрузки:

     # semodule -l | grep my_script 

    Затем попробуйте снова вызвать опровержения и посмотреть, есть ли в журнале аудита больше (разных) предупреждений относительно этого же процесса.

    Дальнейшим выпускам кода type enforcement потребуется version ( 1.0 ) или загрузка пакета не удастся. После компиляции и упаковки, обновление policy package выполняется:

     # semodule -u my_script.pp 

    С SELinux можно многое узнать. Некоторые полезные ссылки:

    • Команды команд.
    • Проверьте также выход apropos selinux .

    Из документов RHEL

    • Управление ограниченными услугами .
    • Улучшенный Linux .

    Хорошая вступительная презентация Дэйва Куигли:

    • Демистификация SELinux

    Вы можете запустить semanage permissive -a dmesg_t . Тогда /bin/dmesg , тип которого dmesg_t , будет работать в разрешающем режиме. Это будет разрешен доступ, но SELinux все равно будет генерировать сообщения AVC.

    Interesting Posts

    FOR цикл не циклический

    Потерянная проблема пробуждения – как UNIX справляется с ней

    Как восстановить окна сочувствия на Gnome 3?

    Простой способ просмотра содержимого каталогов в файловых системах Linux / UNIX

    дата не принимает свой собственный результат

    Усредняющий вывод dstat

    команда / opt / bin / date -date '-15 минут 2016-04-27T14: 14: 47' результат за много часов до указанного времени

    Проблема перед экраном входа в систему – Fedora 21

    Как найти доступные версии пакета для понижения?

    Назначение переменных верхнего регистра командам

    Простой сценарий bash, который слишком долго выполняется

    Почему субволок верхнего уровня по умолчанию (id = 5) не показан в списке subvolume btrfs -a?

    Ошибка сценария Rsync bash (отправка: команда не найдена)

    Вертикальная прокрутка виртуального терминала очень медленная

    LVM: автоматическая активация VG при повторном подключении съемного жесткого диска

    Linux и Unix - лучшая ОС в мире.