Экспериментируя с контекстами файлов, я столкнулся со странным поведением, и мне кажется, что я что-то упустил. Вот что я делаю:

Создайте кучу каталогов и файлов

# mkdir -p /virtual/www/cgi-bin
# touch /virtual/www/cgi-bin/script
# touch /virtual/www/webpage

Установите пару правил с нуля

# semanage fcontext -D
# semanage fcontext -a -t httpd_sys_script_exec_t '/virtual/www/cgi-bin(/.*)?'
# semanage -a -t httpd_sys_content_t '/virtual/www(/.*)?'

Попробуй это!

# restorecon -vr /virtual
restorecon reset /virtual/www context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/www/cgi-bin context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/www/cgi-bin/script context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/www/webpage context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0

Несмотря на более конкретное правило для cgi-bin, каждый файл / каталог получает тип httpd_sys_content_t. Тем не менее, я хочу каталог cgi-bin и ниже получил тип httpd_sys_script_exec_t. Что я делаю неправильно?

Протестировано в CentOS 6 и RedHat 7 с одинаковым результатом.

1 ответ1

0

Поскольку шаблоны, используемые selinux, не могут быть отсортированы (например, сравнить .*b с b.*), Selinux упорядочивает правила не по специфике, а по последнему добавленому-последнему примененному.

К сожалению, semanage fcontext -l упорядочивает правила простым сравнением строк, что помогает найти ваше правило, но не в том случае, если вам нужно отладить несколько правил соответствия.

Вы можете увидеть фактически примененный заказ в

cat /etc/selinux/targeted/contexts/files/file_contexts.local

Поэтому вам нужно сначала добавить более общее правило, а затем более конкретное. Или, что еще лучше, постарайтесь изо всех сил составить правила таким образом, чтобы соответствовать только одному правилу на файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .