在 Ubuntu 上部署 Tomcat 时,日志权限问题通常表现为:
下面按常见场景说明如何正确设置。
Ubuntu 上通常有两种方式:
sudo systemctl status tomcat9
运行用户一般是:
tomcat
或
tomcat9
你可能在 bin/catalina.sh 或 systemd 里指定了用户(如 tomcat、app、root)
✅ 强烈建议不要用 root 跑 Tomcat
tomcat/opt/tomcat/logs 或 /var/log/tomcat9sudo chown -R tomcat:tomcat /opt/tomcat/logs
sudo chmod 750 /opt/tomcat/logs
sudo chmod 640 /opt/tomcat/logs/*.log
sudo usermod -aG tomcat youruser
然后:
sudo chmod 750 /opt/tomcat/logs
sudo setfacl -R -m u:youruser:rX /opt/tomcat/logs
sudo setfacl -R -d -m u:youruser:rX /opt/tomcat/logs
/etc/logrotate.d/tomcat9
✅ 必须包含:
create 0640 tomcat tomcat
否则:
如果你用 systemd:
[Service]
User=tomcat
Group=tomcat
并且:
sudo systemctl daemon-reexec
sudo systemctl restart tomcat
ps aux | grep tomcat
ls -l /opt/tomcat/logs
namei -l /opt/tomcat/logs/catalina.out
| 对象 | 属主 | 权限 |
|---|---|---|
| logs 目录 | tomcat:tomcat | 750 |
| *.log | tomcat:tomcat | 640 |
| 查看用户 | tomcat 组 / ACL | r-x |
如果你愿意,可以告诉我:
我可以给你完全针对你环境的命令。