
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
、カーネルを再コンパイルして (sysctl 経由では管理できないと思います)、再試行してください。
答え2
エラー メッセージの正確なテキスト、使用している JVM など、より詳細な情報を提供する必要があります。
32 ビット Gentoo Hardened (grsec も使用、ただし chroot なし) で Java を実行すると、同様の問題が発生しました。https://bugs.gentoo.org/show_bug.cgi?id=344135
この問題を回避するには、jvm.cfg を変更して、「server」ではなく「client」を使用します。次に例を示します。
[jvm.cfg.patch]
--client IF_SERVER_CLASS -server
--server KNOWN
+-client KNOWN
また、-client や -Xmx256m オプションを使用して java を実行することもできます。