restorecon no CentOS não segue a ordem de fcontext

0

Experimentando contextos de arquivos, enfrentei um comportamento estranho e parece que estou perdendo alguma coisa. Aqui está o que eu faço:

Crie um monte de diretórios e arquivos

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

Configure algumas regras do zero

# 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(/.*)?'

Teste!

# 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

Apesar da regra mais específica para o cgi-bin, todo arquivo / diretório obtém o tipo httpd_sys_content_t. No entanto, eu quero diretório cgi-bin e abaixo tem httpd_sys_script_exec_t tipo. O que estou fazendo errado?

Testado no CentOS 6 e RedHat 7 com o mesmo resultado.

    
por Rovall 28.10.2014 / 21:46

1 resposta

0

Como os padrões usados pelo selinux não podem ser classificados (por exemplo, comparar .*b com b.* ), o selinux não ordena as regras por especificidade, mas pelo último-adicionado-último-aplicado.

Infelizmente, o semanage fcontext -l ordena as regras por uma simples comparação de strings, o que ajuda a encontrar sua regra, mas não se você precisar depurar várias regras de correspondência.

Você pode ver o pedido realmente aplicado em

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

Então você precisa adicionar a regra mais geral primeiro e depois a mais específica. Ou, melhor ainda, tente o seu melhor para criar as regras de uma forma que apenas uma regra por arquivo possa corresponder.

    
por 26.03.2015 / 22:43

Tags