我最近在一个安装了相当基本的 SELinux 的系统上安装了 Sun Java。
我正在运行 Debian Etch 并从非自由软件包存储库安装了 Sun Java 软件包。
这是当我运行 java -version
时系统日志中出现的错误通知。
`Feb 9 14:02:40 dev kernel: audit(1265742160.570:4107): avc: denied { execmem } for pid=9882 comm="java"scontext=user_u:system_r:unconfined_t:s0 tcontext=user_u:system_r :unconfined_t:s0 tclass=进程
2 月 9 日 14:02:40 开发内核:审计(1265742160.578:4108):avc:拒绝 { execmem } for pid=9882 comm="java"scontext=user_u:system_r:unconfined_t:s0 tcontext=user_u:system_r: unconfined_t:s0 tclass=process`
我用谷歌搜索了一下,似乎我需要创建一个 SELinux 策略,允许 Java 执行违反 execmem
约束的操作。这是一个正确的假设吗?如果是这样,我应该如何开始?
更新:
我寻找并找到了一项旨在处理 Java 的有针对性的政策。我使用以下命令安装它:
$ sudo semodule -i/usr/share/selinux/refpolicy-targeted/java.pp
然而,这并没有帮助。我继续在系统日志中看到相同的审核消息。
最佳答案
本指南: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 二进制文件。
关于java - SELinux 阻止 Java 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2231735/