SELinux 阻止 Java 运行
我最近在一个系统上安装了 Sun Java,并安装了相当基本的 SELinux。
我正在运行 Debian Etch 并从非自由软件包存储库安装了 Sun Java 软件包。
以下是我运行 java -version
时系统日志中出现的错误通知。
`2 月 9 日 14:02:40 开发内核:审核(1265742160.570:4107):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
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`
我用 google 搜索了一下,似乎我需要创建一个 SELinux 策略,允许 Java 执行违反 execmem 约束的操作。这是一个正确的假设吗?如果是这样,我应该如何开始?
更新:
我寻找并找到了一个旨在处理 Java 的有针对性的策略。我使用以下命令安装了它:
$ sudo semodule -i /usr/share/selinux/refpolicy-targeted/java.pp
但是这没有帮助。我继续在系统日志中看到相同的审核消息。
I recently installed Sun Java on a system with a fairly basic SELinux install on it.
I'm running Debian Etch and installed the Sun Java package from the non-free package repository.
Here are the error notices that appear in the syslog when I run 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=process
Feb 9 14:02:40 dev kernel: audit(1265742160.578:4108): 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=process`
I've googled around and it seems that I need to create an SELinux policy that permits Java to perform operations that violate the execmem
constraints. Is this a correct assumption? If so, how should I get started?
Updates:
I looked for and found a targeted policy aimed at handling Java. I installed it using the following command:
$ sudo semodule -i /usr/share/selinux/refpolicy-targeted/java.pp
This did not help, however. I continue to see identical audit messages in the syslog.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
本指南:http: //etbe.coker.com.au/2006/12/08/se-linux-on-debian-in-5-minutes/ 和 #selinux 上的 dgrift 告诉我正确的解决方案。
Java 有一个有针对性的策略,必须使用
semodule
来应用。应用策略后,必须使用restorecon
将策略应用到 Java 二进制文件。This guide: http://etbe.coker.com.au/2006/12/08/se-linux-on-debian-in-5-minutes/ and dgrift on #selinux clued me in on the correct solution.
There is a targeted policy available for Java that has to be applied using
semodule
. Once the policy is applied,restorecon
has to be used to apply the policy to the Java binaries.