selinux Execução de tipo em falta (TE) permite regra

3

Quando executo meu teste de FTP para testar a funcionalidade completa, estou preocupado com o motivo de eu estar recebendo um erro de negação de avc em um comando tão popular, como 'mkdir'?

Aqui está a mensagem de negação do AVC:

type=AVC msg=audit(1365021919.400:283): avc:  denied  { create } for  pid=2210     comm="mkdir" name="64F77DCE-9C9F-11E2-90A8-39AEF085A14A"   scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:user_home_t:s0 tclass=dir
    Was caused by:
            Missing type enforcement (TE) allow rule.

            You can use audit2allow to generate a loadable module to allow this access.

De acordo com o site do Fedora, as regras de Execução de Tipos Ausentes geralmente são causadas por erros na política do SELinux. Então, isso é realmente um bug?

    
por usa ims 03.04.2013 / 23:22

3 respostas

3

Parece que você está tentando fazer com que seu servidor da web escreva no diretório pessoal de um usuário. Não há políticas de referência do SELinux para permitir esse comportamento. Você deve pensar cuidadosamente se deve veicular conteúdo dos diretórios pessoais dos usuários.

Se você realmente precisar deste acesso, você pode use o utilitário audit2allow para gerar um módulo de política local que você possa carregar e permitir o acesso.

    
por 03.04.2013 / 23:29
1

Estou confuso é o FTP via apache ou simplesmente FTP antigo?

Se for um FTP simples, verifique o contexto do SELinux de onde você está tentando criar um novo diretório. Pode ser definido incorretamente.

Se for por meio do Apache:

Você pode ativar o Apache para usar diretórios pessoais por meio de um comando como:

setsebool -P httpd_enable_homedirs
chcon -R -t httpd_sys_content_t ~user/public_html

Referência: link

    
por 04.04.2013 / 01:33
1

Já ocorre um erro quando um contexto de segurança diferente é fornecido à porta que você deseja adicionar. Se você estiver usando o Tomcat A porta HTTP fundamental 8080, a porta é do tipo http_cache_port_t. Se você estiver usando nginx foi construído 8081 e transproxy_port_t ou ambos contexto servidor web apache gera um erro porque não pode se conectar. Se você precisar alterar o contexto de segurança e sem uso adicional da opção -m em vez da opção -a.

~# semanage port -l |grep 8081
transproxy_port_t   tcp      8081

e depois

~# semanage port -l |grep http_port_t
http_port_t   tcp      80, 443, 488, 8008, 8009, 8443

Adicionar

# semanage port -m -p tcp -t http_port_t  8081
    
por 29.12.2014 / 12:39