Wie kann ich Java mit paxd auf einem grsec-hardend Arch Linux-Kernel ausführen?

Wie kann ich Java mit paxd auf einem grsec-hardend Arch Linux-Kernel ausführen?

Ich habe Arch Linux mit dem neuesten grsec-gehärteten 4.9.x Linux-Kernel mit installiertem paxd. Aber deshalb erhalte ich beim Versuch, Java auszuführen, die folgende Fehlermeldung:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000035ea1000000, 2555904, 1) failed; error='Operation not permitted' (errno=1)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2555904 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/[username]/hs_err_pid2813.log

Nun, ich habe diesen Fehler in der Vergangenheit erhalten und es geschafft, Java zu erlauben, dies zu tun, aber ich kann mich nicht erinnern und finde auch keine Ressourcen, wie das geht. Ich habe mir angesehen:diese SO-Antwort, aber leider sagt mir mein System, dass es den Befehl nicht finden kann, paxctlobwohl ich alle im Arch-Wiki erwähnten Grsec-bezogenen Dienstprogramme installiert habe.

Wie kann ich also erreichen, dass Java zugelassen wird?

Antwort1

paxctlsollte für Sie funktionieren,

root #paxctl -h
PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <[email protected]>

usage: paxctl <options> <files>

options:
    -p: disable PAGEEXEC        -P: enable PAGEEXEC
    -e: disable EMUTRAMP        -E: enable EMUTRAMP
    -m: disable MPROTECT        -M: enable MPROTECT
    -r: disable RANDMMAP        -R: enable RANDMMAP
    -x: disable RANDEXEC        -X: enable RANDEXEC
    -s: disable SEGMEXEC        -S: enable SEGMEXEC

    -v: view flags          -z: restore default flags
    -q: suppress error messages -Q: report flags in short format
    -c: convert PT_GNU_STACK into PT_PAX_FLAGS (see manpage!)
    -C: create PT_PAX_FLAGS (see manpage!)

Normalerweise würde ich alle Einschränkungen wie diese deaktivieren,

paxctl -pemrxs `which java`

Sie können die Flags jedoch auch direkter setzen, ohne dass Sie dies tun müssen paxctl. Wenn Sie die Flags beispielsweise deaktivieren möchten, gehen Sie folgendermaßen vor :mr

sudo setfattr -n user.pax.flags -v "mr" `which java`

verwandte Informationen