温馨提示×

ubuntu tomcat日志权限如何设

小樊
47
2026-09-06 16:26:59
栏目: 智能运维

在 Ubuntu 上部署 Tomcat 时,日志权限问题通常表现为:

  • Tomcat 无法写日志(Permission denied)
  • 日志文件属主不对(root vs tomcat)
  • logrotate 后新日志无法写入
  • 多用户/运维账号无法查看日志

下面按常见场景说明如何正确设置。


一、Tomcat 以什么用户运行(很关键)

Ubuntu 上通常有两种方式:

1. apt 安装的 Tomcat(推荐)

sudo systemctl status tomcat9

运行用户一般是:

tomcat

tomcat9

2. 手动解压的 Tomcat

你可能在 bin/catalina.shsystemd 里指定了用户(如 tomcatapproot

强烈建议不要用 root 跑 Tomcat


二、日志目录权限标准做法

假设

  • Tomcat 用户:tomcat
  • 日志目录:/opt/tomcat/logs/var/log/tomcat9

1. 设置目录属主

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

2. 设置目录权限

sudo chmod 750 /opt/tomcat/logs

3. 设置已有日志文件

sudo chmod 640 /opt/tomcat/logs/*.log

三、让运维/开发能看日志(不破坏安全)

方法 1:加入 tomcat 组(推荐)

sudo usermod -aG tomcat youruser

然后:

sudo chmod 750 /opt/tomcat/logs

方法 2:使用 ACL(更灵活)

sudo setfacl -R -m u:youruser:rX /opt/tomcat/logs
sudo setfacl -R -d -m u:youruser:rX /opt/tomcat/logs

四、logrotate 后权限不对(常见坑)

Ubuntu apt 的 logrotate 示例

/etc/logrotate.d/tomcat9

✅ 必须包含:

create 0640 tomcat tomcat

否则:

  • 新日志变成 root
  • Tomcat 写不进去

五、systemd 方式运行 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

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Tomcat 安装方式(apt / 解压)
  • 报错日志内容

我可以给你完全针对你环境的命令

0