首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有paxd的grsec-硬端Arch Linux内核上运行Java?

如何在带有paxd的grsec-硬端Arch Linux内核上运行Java?
EN

Unix & Linux用户
提问于 2017-04-12 07:51:01
回答 1查看 894关注 0票数 1

我有Arch,它安装了安装了paxd的最新版本的4.9.xLinux内核。但是,由于这个原因,当我试图运行Java时,我得到了以下错误:

代码语言:javascript
复制
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

现在,我在过去得到了这个错误,我设法告诉它允许Java这样做,但是我不记得也找不到如何做它的资源。我看过这就是答案,但是我的系统告诉我,即使在Arch上安装了所有与grsec相关的实用程序,也找不到paxctl命令。

那么我如何使它允许Java呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-04-12 10:46:22

paxctl应该为你工作,

代码语言:javascript
复制
root #paxctl -h
PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <pageexec@freemail.hu>

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!)

通常我会取消所有这样的限制,

代码语言:javascript
复制
paxctl -pemrxs `which java`

不过,您也可以更直接地设置标志,而不需要paxctl。因此,例如,如果您想禁用mr,您可以这样做:

代码语言:javascript
复制
sudo setfattr -n user.pax.flags -v "mr" `which java`
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/358489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档