Security

無法在 grsec chroot 中執行 java

  • October 15, 2012

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。

引用自:https://serverfault.com/questions/438670