不能在grsec chroot里面运行java

java运行在普通的chroot里面。

但是在一个grsec强化的chroot中,它抱怨没有足够的内存来构build虚拟机。

任何想法如何使它运行,因为我真的需要一个强化的chroot。

谢谢。

一般来说Java和grsec很好地搭配。

但是,grsec中有一个选项可以打破Java的不利之处。

似乎你已经在你的内核中启用了这个选项。

检查:

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

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

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

我有类似的问题在32位Gentoo硬化(也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。