讲师中心 微信公众号
AI工具推荐 视频效率加速

OpenJDK的systemd服务怎么设置运行用户

秋瑶君_1106

秋瑶君_1106

发布时间:2026-10-14 12:15:38

|

917人浏览过

|

来源于php中文网

原创

必须用 User= 和 Group= 显式指定非 root 用户,否则默认以 root 运行;Java 应用无需特权,root 权限会放大漏洞风险(如反序列化、JNDI 注入),导致攻击者获得系统最高控制权,且违反最小权限原则。

openjdk的systemd服务怎么设置运行用户

必须用 User= 和 Group= 显式指定非 root 用户,否则默认以 root 运行 —— 这是安全红线,不是可选项。

为什么不能用 root 启动 Java 服务

Java 应用本身不需特权,root 权限反而放大风险:一旦 JVM 被利用(如反序列化漏洞、JNDI 注入),攻击者直接获得系统最高控制权。systemd 默认以 root 启动服务,除非你明确覆盖 User 和 Group。

  • 常见错误现象:ps aux | grep java 显示进程 UID 是 0;日志里出现 java.io.FileNotFoundException: /root/.config/... 类路径错误
  • 后果:SELinux 或 AppArmor 可能拦截非预期的 root 行为;审计日志里全是 root 操作,无法定位具体服务行为
  • 真实场景:生产环境安全策略强制要求“最小权限原则”,CI/CD 流水线扫描会直接拒绝未设 User 的 .service 文件

User= 必须指向已存在的系统用户,且该用户需有对应权限

systemd 不会自动创建用户,User=myapp 前必须确保系统里真有这个用户,且它对 jar 包、配置目录、日志路径都有读写权限。

system-time
system-time

提供当前系统时间、详细时间信息、时差,支持多种格式和全球时区。

下载
  • 创建专用用户(推荐):sudo useradd -r -s /sbin/nologin myapp(-r 表示系统用户,-s /sbin/nologin 禁止登录)
  • 赋予权限:sudo chown -R myapp:myapp /opt/myapp(jar、配置、日志目录全归该用户)
  • 验证是否能手动运行:sudo -u myapp /usr/bin/java -jar /opt/myapp/app.jar —— 必须成功,否则 systemd 一定失败
  • 注意:User 不能是用户名变量或环境变量,只能是字面量,如 User=myapp,不能写成 User=${APP_USER}

Java 进程实际运行身份由 User + WorkingDirectory + ExecStart 共同决定

只设 User 不够,三个字段必须协同。例如 WorkingDirectory=/opt/myapp 但该目录属主是 root,即使 User=myapp,Java 进程也会因无法读取配置文件而退出。

  • WorkingDirectory 必须是该用户有读+执行(r-x)权限的目录(用于加载 classpath)
  • ExecStart 中的 jar 路径必须对该用户可读(r--),若含 native 库还需可执行(--x)
  • 日志写入路径(如 logback 配置中的 file)必须对该用户可写(rw-),否则日志静默丢失
  • 性能影响:权限检查在每次启动时发生,若路径权限混乱,systemd 会卡在 start-pre 阶段超时(默认 90 秒),报错 Failed with result 'timeout'

容易被忽略的兼容性细节

某些 JDK 版本(尤其是 OpenJDK 8u202 之前)在非 root 用户下启动时,若 JAVA_HOME 指向全局 JDK 目录(如 /usr/lib/jvm/java-1.8.0-openjdk),可能因该目录权限太严(drwxr-x---)导致 JVM 初始化失败。

  • 解决方法:改用 Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 并确保该目录对 myapp 用户可读可执行(chmod o+rx /usr/lib/jvm/java-1.8.0-openjdk)
  • 更稳妥做法:把 JDK 解压到 /opt/jdk 并 chown -R myapp:myapp /opt/jdk,然后在 ExecStart 中用绝对路径调用 /opt/jdk/bin/java
  • CentOS 7/RHEL 7 上,若启用了 SELinux,还需运行 sudo setsebool -P tomcat_can_network_connect_db 1(如应用连数据库)或 sudo semanage fcontext -a -t tomcat_exec_t "/opt/myapp/bin/java",否则会被静默拦截

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

10377

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

7502

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

6572

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1124

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

928

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

1356

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2729

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

20051

2023.08.03

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

0

2026.10.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn