在 Ubuntu 上,Tomcat 日志权限问题一般表现为:
catalina.out / localhost.logPermission denied下面按最常见场景给你一套稳妥解决办法。
# Tomcat 用户(常见是 tomcat 或 www-data)
ps aux | grep tomcat
# 日志目录位置(默认)
/var/log/tomcat9
/opt/tomcat/logs
假设 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
systemctl cat tomcat9
看这一行:
User=tomcat
⚠️ 日志目录必须对这个用户可写
如果日志在 /opt/tomcat/logs,但你用 root 启动过,就会出问题。
修复:
sudo chown -R tomcat:tomcat /opt/tomcat
sudo systemctl restart tomcat9
sudo touch /var/log/tomcat9/catalina.out
sudo chown tomcat:tomcat /var/log/tomcat9/catalina.out
❌ 不要用 chmod 777
❌ 不要用 root 手动跑 startup.sh 然后又用 systemd
❌ 不要把日志放 HOME 目录
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
我可以精确帮你改,不用试错。