SELinux: изменение файлов вручную в /etc/selinux/target /contexts/files/

Я устанавливаю сервер CentOS 7, в котором /home каталог должен находиться в другом разделе, а затем монтироваться с помощью bind-mount. Так: /data/homes должен быть привязан к /home,

Проблема в том, чтобы убедиться, что контексты SELinux применяются правильно. Действительно, следующие команды имеют противоречивые результаты:

# Applies the rules for /home to all the files
restorecon -R -v /home
# Applies the generic rules (standard files) to all the files
restorecon -R -v /data/homes

Это вызывает проблемы, если система должна перемаркировать файлы.

Чтобы решить эту проблему, я изменил файл политики /etc/selinux/targeted/contexts/files/file_contexts.homedirs копируя все правила также для /data/homes:

$ sed -n '/^\/home/p' /etc/selinux/targeted/contexts/files/file_contexts.homedirs \
  | sed 's/^\/home/\/data\/homes/' \
  >> /etc/selinux/targeted/contexts/files/file_contexts.homedirs

Тем не менее, когда политика перестраивается с semodule -BМои изменения потеряны.

Я знаю, что рекомендуемый способ изменить эти файлы - использовать semanage fcontext, но в общей сложности есть почти 200 правил, которые мне нужно добавить, и работает semanage for each не вариант

Как я могу вручную изменить файлы в /etc/selinux/targeted/contexts/files/file_contexts и обеспечить сохранение изменений?

1 ответ

semanage fcontext -a -t <file_context> "<path>/<file>(/.*)?"
restorecon -R <path>/<file>

позволит вам добавлять контексты ко многим файлам рекурсивно и постоянно. Я не уверен, что вы уже попробовали это. Можете ли вы привести примеры правил, которые вы пытаетесь установить, и какие файлы, чтобы мы могли увидеть, что выполнимо для ваших нужд?

Другие вопросы по тегам