![如何在有限的SELinux域中运行Java应用程序?](https://linux22.com/image/140843/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9C%89%E9%99%90%E7%9A%84SELinux%E5%9F%9F%E4%B8%AD%E8%BF%90%E8%A1%8CJava%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我正在使用一个带有自己的 SELinux 类型标签的 Java 应用程序。 Java 将其作为unconfined_t
而不是标记类型来执行。
Java 标记为bin_t
( ls -Z /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java
)
但是ps -efZ | grep java
显示它运行为unconfined_t
.
我怎样才能让java运行为bin_t
?如何让 java 应用程序在正确的上下文中运行?
目标是让应用程序在其自己的上下文中运行,或者至少像bin_t
Java 启动时一样运行。
发行版是 CentOS 7。
答案1
bin_t
是文件类型,而不是进程域。进程通过以下方式进入受限域入口点,通常是标有入口点文件类型的可执行文件,例如httpd_exec_t
httpd 守护程序。
切入点在策略中定义。如果您有定义进程域的策略,它可能也定义了入口点。使用正确的入口点标签来标记用于启动应用程序的可执行文件(脚本等)。