Сделайте все контексты SELinux постоянными

9

В chconпоследнее время я много делал , но, если я правильно понял, они будут стерты на следующей странице. Есть ли способ сделать текущие контексты (желательно только в определенном каталоге) постоянными? Я понимаю, что есть способ сделать это с помощью semanage, но это означает, что нужно вернуться назад и проверить контекст каждого файла и вызвать semanageправило. Так есть ли какой-нибудь автоматизированный способ сделать это?

brianmearns
источник

Ответы:

5

Прежде всего, вы правы, semanage fcontext -a -t <type> <filepattern>делая изменения файлов постоянными, добавляя их в политику - вам нужно будет пометить или restorecon -R -v <filepattern>применить эти изменения. chconне изменяет политику, только контекст на диске.

Вы можете создать список отличий от вашей помеченной политики matchpathcon, в частности:

matchpathcon -V /path/to/file

К сожалению, у него нет рекурсивной опции, возможно, из-за того, что обход дерева обходится дорого, но вы можете управлять им с помощью:

find / -exec matchpathcon -V {} \;

Однако будьте осторожны. Я считаю, что find будет проходить все монтирования файловой системы, включая файловые системы без расширенных атрибутов (xattrs), что может вызвать проблемы. Конечно, если все ваши файловые системы имеют расширенные атрибуты, проблем нет.

Когда у вас есть этот список, вы можете написать сценарий, чтобы выбрать те, которые вы будете semanage. Однако я не знаю автоматизированного способа сделать это одним ударом.


источник
3

Использование matchpathconс findочень медленно. Почему бы не использовать restorecon?

restorecon -rnv /path/to/dir

флаги являются рекурсивными, без изменений и многословными.

user33688
источник