java - SELinux 阻止 Java 运行

标签 java debian selinux

我最近在一个安装了相当基本的 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/

相关文章:

java - 如何永久保存 SharedPreferences 中的数据

java - 如何从 JAVADB 填充组合框

java - 使用 shell 脚本启动和终止 java 应用程序 (Debian)

linux - CentOS7 : copy file and preserve SELinux context

java - 将@Context参数传递给类中的方法

c++ - 包含预编译二进制文件与手动编译二进制文件不同的头文件的正确方法

linux - debian 包装 : what's the difference between dh build and dh binary

php - 告诉 SELinux 授予 Apache 对文档根目录外的 PHP 文件的执行访问权限

linux - 获取内核中套接字事件的通知

java - Android 如何向此 : new java.net.URL ("http://example.com/").openStream() 添加 header