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

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

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

semodule -i mypol.pp

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

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.

  • SELINUX не установлен на Hyper-V Debian Jessie VM
  • compgen и SELinux
  • SELinux не позволяет oddjobd-mkhomedir создавать пользовательский домашний каталог в нестандартном месте
  • SELinux предотвращает автоматическое удаление ecryptfs
  • SELinux предотвращает автоматическое монтирование fstab
  • SELinux войти в Debian
  • SELinux запретил доступ
  • Пользователь selinux добавляет постепенное замедление
  • Как найти / перечислить все файлы в файловой системе с определенным SELinux «fcontext»
  • Как добавить redis в selinux, чтобы он был разрешительным?
  • Как заставить SELinux предотвращать чтение Apache / HTTPD определенных файлов
  • Подскажите пользователю об отказе в безопасности Linux
  • Interesting Posts

    Загружать данные параллельно

    Удалите вторую строку, где первые несколько столбцов идентичны в большом файле

    NetworkManager больше не автоподключается при входе в систему

    Что делает «текст» точно в Bash? Может ли он использоваться в Zsh?

    Как удалить или отключить несуществующее устройство воспроизведения?

    tmux: как связать ключ для запуска команды оболочки?

    cp или mv-файлы в тот же каталог, в котором они уже находятся, когда я нахожусь в другом?

    Как установить программное обеспечение с загрузочного диска Arch на существующую систему Arch?

    Общее использование ЦП и использование ЦП в списке процессов различаются в верхней реализации FreeBSD?

    Как узнать, какой процесс записывается в STDOUT?

    Как эмулировать локальные адреса локальной сети?

    Загрузка и переименование FTP

    Как удалить самый старый файл через FTP с помощью CURL?

    Второй второй столбец Linux

    Вызов wget из make на основе шаблона

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