Problema executando "sandbox selinux" com java

1

Estou tentando proteger um aplicativo java usando o sandbox selinux.

Detalhes do sistema : Redhat 6 | x86_64 | nenhuma instalação de servidor x | jdk7 da versão oracle tar.gz | cgred e cgconfig são parados

O cmd (executado como root)

 sandbox /root/jdk/bin/java -version

acima, o cmd falhou com

 /root/jdk/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

Cavando, revelou que "libjli.so" é a biblioteca compartilhada RPATH. então eu pensei ok já que o sandbox está copiando meu bin / java para / tmp / sandbox_random, portanto, um caminho de código não será encontrado.

Em seguida, altero o RPATH usando o utilitário " chrpath " e o altero para um valor de código de barras Mas ainda assim mostrou o mesmo erro.

Em seguida, usei a opção -M -i do sandbox e executei o seguinte comando (incluí todo o arquivo .so sobre a reclamação):

sandbox -M -i /root/jdk/lib/amd64/jli/libjli.so -i /root/jdk/jre/lib/amd64/libjava.so -i /root/jdk/jre/lib/amd64/jvm.cfg -i /root/jdk/jre/lib/amd64/server/libjvm.so -i    /root/jdk/jre/lib/amd64/libverify.so -i /root/jdk/jre/lib/amd64/libzip.so /root/jdk/bin/java  -version

O seguinte comando resultou neste erro:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fb039000000, 2555904, 1) failed; error='Permission denied' (errno=13)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 2555904 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/hs_err_pid1270.log

Agora eu usei a strace para ver o que aconteceu e strace impresso (pequena seção)

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fb15b6359d0) = 8268
close(4)                                = 0
read(3, "", 1048576)                    = 0
close(3)                                = 0
wait4(8268, Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f4579000000, 2555904, 1) failed; error='Permission denied' (errno=13)

Eu tenho espaço suficiente para ter certeza

Vocês podem indicar o que pode estar errado?

    
por Bhuvan 28.12.2014 / 12:36

1 resposta

0

O problema é resolvido . Acontece que a rotulagem do arquivo relacionado ao java (openjdk e oracle java) não estava correta no meu sistema redhat 6.
Quando eu atualizei do redhat 6 para o redhat 7 ele começou a funcionar bem, ou seja, sandbox java -version funcionou perfeitamente sem problemas.

No meu sistema redhat 7, o arquivo .so e outros arquivos relacionados a java são rotulados como um dos seguintes:

system_u:object_r:textrel_shlib_t:s0
system_u:object_r:lib_t:s0

na minha máquina anterior, ou seja, redhat 6 todos os arquivos foram marcados como algo diferente e, portanto, eu estava recebendo o problema.

    
por 02.01.2015 / 02:23
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '872851',
    'url' => 'problem-running-selinux-sandbox-with-java',
];

$_COOKIE = [
    'advanced-frontend' => '7ef1e08dcjsc2irt37qvjntf13',
    '_csrf-frontend' => 'f872583dd81af5a0a890f161cf5dd79bca13c83e26054beb23af511081f0f535a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"KDyoJct4sLyrZjR8q26iZ1pWuxdFFMls";}',
];

$_SESSION = [
    '__flash' => [],
];