無法在 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 上執行 java 時遇到了類似的問題(也是 grsec,但沒有 chroot):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。

相關內容