无法在 grsec chroot 中运行 java

无法在 grsec chroot 中运行 java

java 在常见的 chroot 中运行良好。

但是在 grsec 强化 chroot 中,它抱怨没有足够的内存来构建 VM。

关于如何让它运行的任何想法,因为我确实需要一个强化的 chroot。

谢谢。

答案1

通常来说,Java 与 grsec 配合得很好。

然而,grsec 中有一个选项可能会对 Java 造成不利影响。

看来您已经在内核中启用了该选项。

检查一下:

[*] Grsecurity 
  Customize Configuration  --->
    PaX  --->
      Miscellaneous hardening features  ---> 
        [ ] Sanitize all freed memory

确保Sanitize all freed memory选项被禁用,重新编译内核(IMO 它不能通过 sysctl 进行管理)并重试。

答案2

您应该提供更多详细信息:错误消息的确切文本、您正在使用的 JVM 等等。

我在 32 位 Gentoo Hardened (也是 grsec,但没有 chroot) 上运行 java 时遇到了类似的问题:https://bugs.gentoo.org/show_bug.cgi?id=344135

您可以尝试通过将 jvm.cfg 更改为使用“客户端”而不是“服务器”来解决此问题,例如:

[jvm.cfg.patch]
--client IF_SERVER_CLASS -server
--server KNOWN
+-client KNOWN

您还可以尝试使用 -client 和/或 -Xmx256m 选项运行 java。

相关内容