Security
無法在 grsec chroot 中執行 java
java 在公共 chroot 中執行良好。
然而,在 grsec 強化的 chroot 中,它抱怨它沒有足夠的記憶體來建構 VM。
關於如何讓它執行的任何想法,因為我真的需要一個硬化的 chroot。
謝謝。
一般來說,Java 與 grsec 配合得很好。
然而,在 grsec 中有一個選項對 Java 不利。
似乎您在核心中啟用了該選項。
檢查它:
[*] Grsecurity Customize Configuration ---> PaX ---> Miscellaneous hardening features ---> [ ] Sanitize all freed memory
確保
Sanitize all freed memory
選項被禁用,重新編譯核心(IMO 它不能通過 sysctl 管理)並重試。
您應該提供更多詳細資訊:錯誤消息的確切文本、您正在使用的 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。