标签: java

允许 Java 7 在 SELinux 上运行的安全方法是什么

简短版本: 允许 Java 7 在(与?)SELinux 上运行的最安全方式是什么?

长版:

如果我使用了不正确的术语,请提前抱歉。我真的只是一名 Java 开发人员,对 Linux 技能知之甚少。

我刚刚在 CentOS 5.3 版(最终版)上安装了 Java 7,它显然具有安全增强的 Linux。安装完成后(我通过从 Oracle 中解压缩 tar.gz 文件来“安装” /usr/java/jdk/jdk1.7.0_25),我运行java -version并得到这个错误:

Error: dl failure on line 864
Error: failed /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so,
      because /usr/java/jdk1.7.0_25/jre/lib/i386/server/libjvm.so:
      cannot restore segment prot after reloc: Permission denied`
Run Code Online (Sandbox Code Playgroud)

我发现一些文章指出这可能是由于 SELinux 并尝试 setenforce 0查看问题是否消失。我运行了那个命令,Java 工作了。但是这些相同的文章说,离开setenforce 0连接到 Internet 的主机是危险的,而我的主机已连接到 Internet。

还有其他文章提出了下一种方法,但也说它可能很危险,所以我还没有尝试过。

chcon -t textrel_shlib_t /usr/jre1.7.0_10/lib/i386/client/libjvm.so
Run Code Online (Sandbox Code Playgroud)

...在上面的命令中,命令末尾的路径替换为我的 JDK 路径。

我找不到关于如何安全地在(使用?)SELinux 上运行 Java 7 的“官方”(这可能意味着很多事情)。有没有人有任何信息给我?

编辑: 我发现了一篇提到编辑/etc/selinux/config. 我已设置如下示例所示。这允许 Java 运行,但我认为我现在有一些安全漏洞。 …

linux selinux java

9
推荐指数
1
解决办法
6156
查看次数

使用不同的java版本运行两个程序

我在我的新 CentOS 上安装了两个 JAVA JRE,因为 Cassandra 需要 java7u25 或更高版本,而 iReport 需要使用 1.6。

现在如何从命令行启动每个程序,告诉每个程序使用哪个版本?

我必须更改/etc/profile文件吗?如果是这样怎么办?

centos java jdk

9
推荐指数
1
解决办法
2万
查看次数

jetbrains-toolbox 加载到空白屏幕

在过去一个月左右的时间里,我一直在尝试让 jetbrains-toolbox 工作。它曾经可以工作(也是我安装 IntelliJ IDEA 和 Gogland 的方式。)当我去更新 IDEA 时

我目前正在使用 Arch。这是我尝试过的事情。

  1. 从 Sway 中加载 jetbrains-toolbox。
  2. 从 aur 重新安装 jetbrains-toolbox。
  3. 从 Jetbrains 网站重新安装 jetbrains-toolbox。
  4. 使用 --disable-gpu 启动它
  5. 清除 ~/.local/share/JetBrains/Toolbox
  6. 谷歌搜索我收到的所有消息。
  7. 在不同的 DE 中加载 jetbrains-toolbox。我尝试了 GNOME、KDE ​​和 i3。

设置文件 (~/local/share/JetBrains/Toolbox/.settings.json),即使在被第 5 项操作清除后,也能够重新生成,所以我假设我的文件系统上某处存在某些东西不走了。这就是我认为可能导致问题的原因。我已经通过查看 Thunar 的垃圾文件夹验证了设置文件已被删除。但是,从 ripgrep 搜索我的电子邮件地址(包含在设置文件中)并没有发现任何相关信息。

这些是我运行的命令:

  1. cd ~/ sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt
  2. cd /usr/ sudo rg --hidden "MY_EMAIL_HERE" >> ~/Desktop/home_search.txt

唯一相关的结果是: .local/share/JetBrains/Toolbox/.settings.json: "email": "MY_EMAIL_HERE", .local/share/Trash/files/Toolbox/.settings.json: "email": "MY_EMAIL_HERE",

我并不完全精通 Linux,但我一直在寻求帮助。如果您有任何建议,请耐心等待我。我可能有点傻。

当我从终端运行它时,这是显示的消息:

john@john ~/D/jetbrains-toolbox-1.2.2314> ./jetbrains-toolbox [0415/155414:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale

这是一条偶尔会 …

arch-linux java troubleshooting

9
推荐指数
2
解决办法
6214
查看次数

如何在 chrooted 环境中运行 GUI Java 应用程序?

就我而言,Java 应用程序是 JDownloader。我按照此处的说明准备了 chroot 环境:

所以,我安装了java,添加了组和用户,复制了JDownload文件,但是当我尝试运行它时(作为chroot下的普通用户;我以root身份运行chroot,但是一旦我进入chroot,我就切换到chroot普通用户) :

java -Xmx512m -jar JDownloader.jar
Run Code Online (Sandbox Code Playgroud)

我收到了一些积极的信息,比如 JDownloader 加载皮肤

10 4/6/11 2:15:17 PM - FINER [jd.JDClassLoader(<init>)] -> Look and Feel JAR loaded: /mnt/jd/libs/laf/syntheticaSilverMoon.jar
Run Code Online (Sandbox Code Playgroud)

但这就是故事的结局——应用程序没有出现。不管我用chroot运行chroot环境还是openroot,结果都是一样的。

当我以 chroot-root 身份运行 JDownload 时,我得到了更多的输出,但最后发生了异常:

10 4/6/11 2:39:23 PM - FINER [jd.config.DatabaseConnector(<init>)] -> Loading database
10 4/6/11 2:39:23 PM - FINER [jd.config.DatabaseConnector(checkDatabaseHeader)] -> Checking database

10 4/6/11 2:39:23 PM - INFO [jd.Main(main)] -> init Splash

------------------------  Thread: …
Run Code Online (Sandbox Code Playgroud)

chroot gui java x11

8
推荐指数
2
解决办法
2万
查看次数

没有 GUI 的 Linux 的最小 Java 安装

我正在使用 CentOS 6.3 x86_64 最小操作系统(使用 netinstall ISO 安装)。

该系统预计不会运行控制台应用程序/服务和 Tomcat7 之外的任何东西。当我尝试安装 OpenJDK 1.7 时,它会列出一些 x11 包作为依赖项。为了我的目的,甚至不需要 awt 。因此,如果可能,我想避免安装所有字体、x11 等。

是否存在没有 UI 部分的 Java/JRE 版本?

headless java

8
推荐指数
1
解决办法
1万
查看次数

即使有足够的 RAM,Java“无法为对象堆保留足够的空间”

我目前在运行 Java 时遇到了一些问题。由于堆问题,它不会启动。但是我有超过 9 GB 的可用内存(如果您认为缓存是空的,甚至是 16 GB)。这是我得到的错误(和free命令)

root@server: ~ # java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

root@server: ~ # free
             total       used       free     shared    buffers     cached
Mem:      25165824   15941148    9224676          0          0    7082176
-/+ buffers/cache:    8858972   16306852
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

我在虚拟化服务器上​​运行 64 位 Debian。虚拟化软件是 OpenVZ。这是我的 Java 版本(我可以在停止两个 VM(当前正在运行的 4 …

debian java ram

8
推荐指数
2
解决办法
6万
查看次数

Java 不显示菜单文本

在几天/几周没有使用它之后,我开始使用 netbeans/intelliJ/squirrelSQL,现在菜单不显示文本。只有下划线。我的系统:

  • ArchLinux(一切都是最新的,一切都是通过 pacman 安装的)
  • 侏儒 3.12.2
  • OpenJDK 运行时环境 (IcedTea 2.5.0) (Arch Linux build 7.u60_2.5.0-2-x86_64)
  • OpenJDK 64 位服务器 VM(构建 24.60-b09,混合模式)
  • Java:/usr/lib/jvm/java-7-openjdk/jre/bin/java

任何的想法?

截屏: 在此处输入图片说明

arch-linux java fonts x11 intellij

8
推荐指数
2
解决办法
2698
查看次数

Java JDK 在依赖项列表中缺少 libjli.so 路径,Debian

我正在编写 chroot 监狱的创建脚本,该自动化的一部分包括将各种可执行文件及其依赖项复制到监狱中。我正在使用以下 bash 行来解析依赖项列表中的文件路径(例如,对于 java):

$ ldd `which java` | grep -o '/[^()]*'
/lib/x86_64-linux-gnu/libz.so.1
/lib/x86_64-linux-gnu/libpthread.so.0
/lib/x86_64-linux-gnu/libdl.so.2
/lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2
Run Code Online (Sandbox Code Playgroud)

这对 Node.js 和 Python 非常有用,但是当我尝试java从监狱中执行时,出现错误:

java:加载共享库时出错:libjli.so:无法打开共享对象文件:没有这样的文件或目录

事实证明,依赖项列表中缺少libjli.so路径……至少那些ldd向我们展示的路径(第 5 行):

$ ldd `which java`
linux-vdso.so.1 =>  (0x00007ffff7f4d000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7ac3928000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7ac370c000)
libjli.so => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7ac3507000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7ac317c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7ac3b48000)
Run Code Online (Sandbox Code Playgroud)

我找到了文件...

$ find /usr/lib -name libjli.so
/usr/lib/jvm/java-6-openjdk-amd64/lib/amd64/jli/libjli.so
/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/jli/libjli.so
Run Code Online (Sandbox Code Playgroud)

...但我想知道为什么它没有列出ldd。它显然是一个已知的依赖项,但路径未知?任何帮助表示赞赏!

debian java dependencies jdk

8
推荐指数
2
解决办法
2万
查看次数

openjdk-r ppa 是否足够可靠以安装在服务器上?

我们正在运行 ubuntu 14.04,它仍然没有 openjdk8。我怀疑他们会很快解决这个问题。我们非常需要 jdk8。这个 openjdk-r ppa 足够安全吗?

ubuntu java

8
推荐指数
1
解决办法
8211
查看次数

设置 Android Studio 卡住了

我正在设置我新安装的 Ubuntu Mate 16.04,在设置 Android Studio 3.0 时我遇到了这个: 在此处输入图片说明

看来安装程序试图 反复从https://dl.google.com/android/repository/android_m2repository_r47.zip下载 ,我认为它内部失败了。

当我在浏览器中尝试 URL 时,它仍然有效。有人熟悉这个问题吗?

[补充]
• Java 版本:8u152
• 执行:sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386

ubuntu java android

8
推荐指数
2
解决办法
6844
查看次数