SELinux阻止Java运行

时间:2010-02-09 19:09:45

标签: java debian selinux

我最近在一个安装了相当基本的SELinux的系统上安装了Sun Java。

我正在运行Debian Etch并从非免费软件包存储库中安装Sun Java软件包。

以下是运行java -version时syslog中出现的错误通知。

`2月9日14:02:40开发内核:审计(1265742160.570:4107):avc:拒绝{execmem}代表pid = 9882 comm =“java”scontext = user_u:system_r:unconfined_t:s0 tcontext = user_u:system_r :unconfined_t:s0 tclass = process

2月9日14:02:40开发内核:审计(1265742160.578:4108):avc:拒绝{execmem}代表pid = 9882 comm =“java”scontext = user_u:system_r:unconfined_t:s0 tcontext = user_u:system_r: unconfined_t:s0 tclass = process`

我已经四处搜索了,似乎我需要创建一个允许Java执行违反execmem约束的操作的SELinux策略。这是正确的假设吗?如果是这样,我应该如何开始?

更新:

我寻找并找到了一个旨在处理Java的目标政策。我使用以下命令安装它:

$ sudo semodule -i /usr/share/selinux/refpolicy-targeted/java.pp

然而,这并没有帮助。我继续在syslog中看到相同的审计消息。

1 个答案:

答案 0 :(得分:2)

本指南:http://etbe.coker.com.au/2006/12/08/se-linux-on-debian-in-5-minutes/和#selinux上的dgrift让我了解了正确的解决方案。

# semodule -i /usr/share/selinux/refpolicy-targeted/java.pp
# restorecon -r -v /usr

有一个针对Java的目标策略必须使用semodule来应用。应用策略后,必须使用restorecon将策略应用于Java二进制文件。