2

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

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

以下是我运行时出现在 syslog 中的错误通知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=进程`

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

更新:

我寻找并找到了一项旨在处理 Java 的有针对性的政策。我使用以下命令安装了它:

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

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

4

1 回答 1

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 二进制文件。

于 2010-02-09T20:05:56.890 回答