在 Linux 上修改 Tomcat 日志权限,通常分三种情况:改已有日志文件权限、改日志目录权限、改以后新日志的权限(根本解决)。下面按常见场景说明。
Tomcat 日志一般在:
$TOMCAT_HOME/logs/
例如:
/opt/tomcat/logs/
/usr/local/tomcat/logs/
ls -l $TOMCAT_HOME/logs
chmod 644 $TOMCAT_HOME/logs/*.log
chmod 644 $TOMCAT_HOME/logs/*.txt
如果 Tomcat 用 tomcat 用户运行:
chown -R tomcat:tomcat $TOMCAT_HOME/logs
chmod 755 $TOMCAT_HOME/logs
chown tomcat:tomcat $TOMCAT_HOME/logs
Tomcat 需要对该目录有 写权限
Tomcat 日志权限由 运行用户 + logging 配置 决定。
ps -ef | grep tomcat
或
systemctl status tomcat
确保日志目录属主是该用户。
位置:
$TOMCAT_HOME/conf/logging.properties
例如:
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.level = FINE
Tomcat 自身 不能直接控制日志文件权限,权限由运行用户 umask 决定。
umask
编辑:
$TOMCAT_HOME/bin/catalina.sh
或 systemd 服务文件
在文件开头加:
umask 022
vim /etc/systemd/system/tomcat.service
在 [Service] 下加:
UMask=022
然后:
systemctl daemon-reload
systemctl restart tomcat
umask 022 → 新日志默认
644
如果你在 WEB-INF/classes/log4j.properties 或 logback.xml 中配置日志:
❌ 日志目录 root 属主,Tomcat 无法写
✅ 改为 tomcat 用户
❌ 只改一次权限,重启后又不对
✅ 改 umask 或运行用户
# 1. 日志目录
ls -ld $TOMCAT_HOME/logs
# 2. Tomcat 用户
ps -ef | grep java
# 3. 权限
ls -l $TOMCAT_HOME/logs
# 4. umask
umask
如果你能告诉我:
我可以给你精确命令。