O Apache não pode abrir o arquivo que é um link simbólico

5

Eu tenho um arquivo:

js/jquery.terminal-src.js: symbolic link to ../../repo/js/jquery.terminal-src.js

e quando tento abri-lo com o navegador usando:

link

Eu tenho o erro 403 proibido, o arquivo tem permissão

-rw-rw----. 1 kuba kuba 291604 08-27 22:20 ../../repo/js/jquery.terminal-src.js

e o apache2 não pode abrir esse arquivo, eu instalei o SeLinux e estou usando o Fedora Distro.

Eu tenho isso em /var/log/audit/audit.log

type=AVC msg=audit(1503868547.512:625): avc:  denied  { getattr } for  
pid=519 comm="httpd" path="/home/kuba/projects/jcubic/terminal/test/css/jquery.
terminal-src.css" dev="sda3" ino=26608576 scontext=system_u:system_r:
httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=lnk_file
permissive=0

Eu adicionei o usuário do apache ao grupo kuba e projects é link simbólico no diretório /var/www/html . Outros arquivos, até mesmo links simbólicos, estão funcionando bem.

Eu também tentei definir o grupo kuba para cada diretório mesmo / home, mas isso não funcionou (e todos os diretórios já pertencem ao grupo kuba )

O que eu preciso configurar para tornar os arquivos de links simbólicos do Apache?

Eu não quero desativar o SeLinux porque ele está instalado no Fedora por alguma razão existe de outra maneira?

    
por jcubic 27.08.2017 / 23:25

1 resposta

7

Você pode usar audit2why para descobrir por que o acesso foi negado e, possivelmente, se um SELinux booleano existe para permitir acesso.

O SELinux boolean httpd_enable_homedirs permite que o Apache leia os diretórios home e deve ser o suficiente no seu caso. Você pode ativá-lo usando (como root) setsebool -P httpd_enable_homedirs 1 .

Caso você precise alterar a política do SELinux, você pode usar audit2allow para gerar um módulo de política para permitir acesso.

As regras do SELinux são verificadas após as permissões do Unix. As regras do SELinux apenas adicionam regras de controle de acesso mais restritas e nunca tornarão as permissões de arquivos existentes menos restritivas.

O Apache tem FollowSymLinks e SymLinksIfOwnerMatch opções que afetam como os links simbólicos são tratados. Por padrão, o FollowSymlinks é ativado e o Apache segue links simbólicos, mas essas opções podem ser alteradas em <Directory> seções do arquivo de configuração ou em .htaccess arquivos.

    
por 27.08.2017 / 23:32