我最近在一个安装了相当基本的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
答案 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二进制文件。