温馨提示×

ubuntu下java权限怎么给

小樊
42
2026-09-25 10:38:47
栏目: 编程语言

在 Ubuntu 下给 Java 相关权限,常见情况有几种,下面按最常见场景说明:


一、给 Java 可执行文件执行权限

如果你是手动下载的 JDK/JRE(如 jdk-21/bin/java):

chmod +x /path/to/java

如果是整个 bin 目录:

chmod -R +x /path/to/jdk/bin

二、让普通用户能使用 Java(环境变量)

一般不建议用 root 跑 Java,推荐配置环境变量:

sudo nano /etc/profile

添加:

export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

使生效:

source /etc/profile

三、给 Java 程序访问文件/端口的权限

1️⃣ 文件/目录权限

chmod 755 /your/java/app
chown youruser:youruser /your/java/app -R

2️⃣ 绑定 1024 以下端口(如 80、443)

Java 不能直接用普通用户绑定低端口:

✅ 推荐方式(端口转发):

sudo apt install authbind
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown youruser /etc/authbind/byport/80

authbind --deep java -jar app.jar

❌ 不推荐:用 sudo java


四、给 Java 程序 root 权限(不推荐)

sudo java -jar app.jar

⚠️ 安全风险大,仅测试用


五、Systemd 服务权限(服务器常用)

[Service]
User=appuser
ExecStart=/usr/bin/java -jar /opt/app/app.jar

六、SELinux / AppArmor(Ubuntu 默认 AppArmor)

如报权限错误:

sudo aa-status
sudo journalctl -xe

如果你能说清楚 具体场景(例如:运行 jar 报错、不能写文件、不能连端口),我可以给你精确命令。

0 踩