我最近在安装了相当基本的SELinux的系统上安装了Sun Java。SELinux阻止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 = 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`
我周围的一派,似乎我需要创建一个SELinux策略允许的Java执行违反execmem
约束操作。这是一个正确的假设吗?如果是这样,我该如何开始?
更新:
我查找并找到了一个旨在处理Java的目标策略。我安装它使用以下命令:
$ sudo semodule -i /usr/share/selinux/refpolicy-targeted/java.pp
这并没有帮助,但是。我继续在syslog中看到相同的审计消息。
@jkndrkn:大多数Linux发行版的主要安全缺陷之一是,您需要root来安装.deb或.rpm软件包。看起来你担心安全问题。我确定。这就是为什么我永远不会以root身份安装Java。我将.tar.gz作为用户从用户帐户安装。在Windows上,如果没有管理员密码,您将无法安装Java。在Linux上,你可以。如果您担心安全问题,永远不要以root身份安装Java。 (可能不会帮助你的SELinux问题,但认为我会提到它,大多数人不知道你可以在普通的用户帐户中安装Java) – SyntaxT3rr0r
@Wizardofodds实际上,你可以在chroot中安装rpm和.deb。我不认为你可以把它称为Linux的一个安全漏洞,当替代品是Windows时,绝对一切都以超级用户的身份运行,你不能像普通用户那样安装任何东西。 – rook