-
Limpar a instalação atual
-
Faça o download do arquivo RPM ( link )
yum -y localinstall /path/to/downloaded-java.rpm
o resto será cuidado.
Versão resumida: Qual é a maneira mais segura de permitir que o Java 7 seja executado (com?) no SELinux?
Versão longa:
Desculpe antecipadamente se eu usar terminologia incorreta. Eu sou realmente apenas um desenvolvedor de Java com um conhecimento limitado de habilidades em Linux.
Acabei de instalar o Java 7 no CentOS versão 5.3 (Final) que aparentemente tem o Security Enhanced Linux. Após a conclusão da instalação (que "instalei" ao descompactar o arquivo tar.gz do Oracle em /usr/java/jdk/jdk1.7.0_25
), executei java -version
e recebi este erro:
Error: dl failure on line 864
Error: failed /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so,
because /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so:
cannot restore segment prot after reloc: Permission denied'
Eu encontrei alguns artigos afirmando que isso pode ser devido ao SELinux e tentar setenforce 0
e ver se o problema desaparece. Eu corri o comando e o Java funcionou. Mas esses mesmos artigos dizem que deixar setenforce 0
em um host conectado à Internet é perigoso e meu host está conectado à Internet.
Existem outros artigos que sugerem esta próxima abordagem, mas também dizem que pode ser perigoso, por isso ainda não tentei.
chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so
... no comando acima, o caminho no final do comando é substituído pelo caminho do meu JDK.
O que eu não consigo encontrar é algo "oficial" (que pode significar muitas coisas) sobre como rodar o Java 7 (com o?) SELinux com segurança. Alguém tem alguma informação para mim?
Editar: descobri um artigo que se referia à edição de /etc/selinux/config
. Eu configurei como mostrado na amostra abaixo. Isso permite que o Java seja executado, mas suponho que agora tenho algumas falhas de segurança.
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=permissive
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
Limpar a instalação atual
Faça o download do arquivo RPM ( link )
yum -y localinstall /path/to/downloaded-java.rpm
o resto será cuidado.