温馨提示×

ubuntu tomcat日志权限问题咋办

小樊
33
2026-09-15 17:55:26
栏目: 智能运维

在 Ubuntu 上,Tomcat 日志权限问题一般表现为:

  • Tomcat 无法写入 catalina.out / localhost.log
  • 启动报 Permission denied
  • 日志目录属主不对(root vs tomcat)
  • 用 systemd 启动和手动启动权限不一致

下面按最常见场景给你一套稳妥解决办法。


一、先确认关键信息

# Tomcat 用户(常见是 tomcat 或 www-data)
ps aux | grep tomcat

# 日志目录位置(默认)
/var/log/tomcat9
/opt/tomcat/logs

二、最常用解决方案(推荐)

✅ 1. 修改日志目录属主

假设 Tomcat 用户是 tomcat

sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod -R 755 /var/log/tomcat9

如果是自定义目录:

sudo chown -R tomcat:tomcat /opt/tomcat/logs

三、systemd 启动的 Tomcat(重点)

✅ 2. 检查 systemd 服务用户

systemctl cat tomcat9

看这一行:

User=tomcat

⚠️ 日志目录必须对这个用户可写

如果日志在 /opt/tomcat/logs,但你用 root 启动过,就会出问题。

修复:

sudo chown -R tomcat:tomcat /opt/tomcat
sudo systemctl restart tomcat9

四、catalina.out 没权限(很常见)

✅ 3. 手动创建并设置权限

sudo touch /var/log/tomcat9/catalina.out
sudo chown tomcat:tomcat /var/log/tomcat9/catalina.out

五、不要做的事(坑)

❌ 不要用 chmod 777 ❌ 不要用 root 手动跑 startup.sh 然后又用 systemd ❌ 不要把日志放 HOME 目录


六、SELinux / AppArmor(Ubuntu 一般是 AppArmor)

Ubuntu 默认 AppArmor,基本不会拦 Tomcat 日志
但如果用的是 自定义路径

sudo aa-status | grep tomcat

必要时:

sudo systemctl restart apparmor

七、最稳配置建议(生产环境)

/var/log/tomcat9
├── catalina.out   (tomcat:tomcat 644)
├── localhost.log  (tomcat:tomcat 644)

Tomcat 用户 ≠ root


八、你可以直接告诉我:

  1. Ubuntu 版本
  2. Tomcat 版本
  3. 报错原文(最重要)
  4. 手动启动 or systemd

我可以精确帮你改,不用试错。

0