在 Debian 系统上配置 Tomcat 的权限,通常包含以下几个方面:系统用户/组权限、目录权限、Tomcat 自身权限(如 manager/管理员)、以及安全加固。下面按常见场景说明。
Debian 下 Tomcat 一般通过包安装(如 apt install tomcat9):
ps aux | grep tomcat
常见用户:
tomcat 或 tomcat9tomcatTomcat 绝对不要用 root 启动。
检查服务文件:
systemctl cat tomcat9
应看到类似:
User=tomcat
Group=tomcat
sudo chown -R root:tomcat /var/lib/tomcat9
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chown -R tomcat:tomcat /var/cache/tomcat9
sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps
# 目录
find /var/lib/tomcat9 -type d -exec chmod 750 {} \;
# 文件
find /var/lib/tomcat9 -type f -exec chmod 640 {} \;
路径示例:
/etc/tomcat9/tomcat-users.xml
示例(仅内网使用):
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="强密码" roles="manager-gui,admin-gui"/>
⚠️ 禁止在生产环境开放 manager
编辑:
/var/lib/tomcat9/webapps/manager/META-INF/context.xml
改为:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.0\.0\.1|::1|192\.168\.1\.\d+" />
编辑:
sudo systemctl edit tomcat9
添加:
[Service]
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ReadWritePaths=/var/lib/tomcat9 /var/log/tomcat9 /var/cache/tomcat9
然后:
sudo systemctl daemon-reload
sudo systemctl restart tomcat9
sudo ufw allow from 192.168.1.0/24 to any port 8080
或只监听 localhost:
# server.xml
<Connector port="8080" address="127.0.0.1" />
❌ Tomcat 启动失败:
✅ 排查:
sudo tail -n 50 /var/log/tomcat9/catalina.out
如果你能说明:
我可以给你更精确的权限方案。