在 Debian 上配置 Tomcat 日志权限,核心目标是:
Tomcat 运行用户能写日志,其他用户尽量不能改,且便于运维查看。
下面按常见场景说明。
Debian 上 Tomcat 通常通过 tomcat 或 tomcat9 用户运行:
ps aux | grep tomcat
常见用户:
tomcattomcat9www-data(较少)一般有以下几种:
/var/log/tomcat9/
/var/lib/tomcat9/logs/
/opt/tomcat/logs/
确认:
ls -ld /var/log/tomcat9
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod 750 /var/log/tomcat9
说明:
750:属主可读写执行,属组可读执行,其他无权限777sudo chmod 640 /var/log/tomcat9/*.log
或统一设置:
sudo chmod 640 /var/log/tomcat9/catalina.out
创建一个日志组(推荐):
sudo groupadd logread
sudo usermod -aG logread youruser
sudo chown -R tomcat:logread /var/log/tomcat9
sudo chmod 750 /var/log/tomcat9
sudo chmod 640 /var/log/tomcat9/*.log
logging.propertiesjava.util.logging.FileHandler.prefix = catalina.
java.util.logging.FileHandler.suffix = .log
确保路径在 Tomcat 有权限的目录中。
如果用 systemd:
systemctl cat tomcat9
可能看到:
ReadWritePaths=/var/log/tomcat9
如果没有,可加:
[Service]
ReadWritePaths=/var/log/tomcat9
然后:
sudo systemctl daemon-reload
sudo systemctl restart tomcat9
❌ 错误:
chmod 777 /var/log/tomcat9
✅ 正确:
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod 750 /var/log/tomcat9
sudo chmod 640 /var/log/tomcat9/*.log
如果你是:
可以告诉我具体环境,我可以给你更精确的配置。