Eu fiz uma atualização do Yum e a capacidade do Tomcat de acessar o arquivo foi quebrada.
SEVERE: Failed to load keystore type JKS with path /var/websvr/certs/keyfile.jks due to /var/websvr/certs/keyfile.jks (Permission denied)
java.io.FileNotFoundException: /var/websvr/certs/keyfile.jks (Permission denied)
Mesmo que o usuário do tomcat tenha ownership and full permissions
não apenas do arquivo, mas de todo o diretório
-rwxrwxrwx. 1 tomcat tomcat 4829 Aug 19 2016 keyfile.jks
e verifiquei que Tomcat
está sendo executado com tomcat user
. Então, por que o acesso ainda está sendo impedido?
Servidor Red Hat Enterprise Linux versão 7.4 (Maipo)
Editar
De comentário de A.B - o /var/log/audit/audit.log
:
type=AVC msg=audit(1511208892.087:392): avc: denied { read } for pid=770 comm="java" name="keyfile.jks" dev="xvda2" ino=9641897 scontext=system_u:system_r:tomcat_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
Então aparece, isso é relacionado ao SELinux . Tentei resolver, mas postagens como esta exigem uma assinatura da Red Hat.
Usando RH Doc para SELinux & Apache , em conjunto com RH SELinux Doc - Eu acho que para resolver isso, o arquivo keyfile.jks
deve ser rotulado com:
tomcat_t:tomcat_t:tomcat_sys_content_t:s0
que é o acesso somente leitura para o usuário confinado tomcat_t na função tomcat_t. O arquivo está atualmente rotulado:
unconfined_u:object_r:var_t:s0
para passar as restrições adicionais de arquivos do SELinux.
Qualquer orientação é apreciada!