在 Debian 上设置 Tomcat 用户,通常是指为 Tomcat Manager / Host Manager 配置可登录的用户。下面按 最常见、最安全 的方式一步一步说明(以 Tomcat 9 / 10 为例,Tomcat 8 类似)。
Tomcat 的用户和角色定义在:
/etc/tomcat9/tomcat-users.xml
(如果是 Tomcat 10,可能是 tomcat10)
编辑该文件:
sudo nano /etc/tomcat9/tomcat-users.xml
在 <tomcat-users> 标签内添加如下内容(不要写在注释里):
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="strongpassword"
roles="manager-gui,admin-gui"/>
说明:
| 角色 | 作用 |
|---|---|
manager-gui |
访问 Web 应用管理界面 |
admin-gui |
访问 Virtual Host 管理界面 |
manager-script |
脚本部署(如 Jenkins) |
manager-jmx |
JMX 代理 |
✅ 生产环境建议:
Tomcat 默认禁止远程访问 Manager,否则就算配了用户也无法登录。
sudo nano /usr/share/tomcat9-admin/manager/META-INF/context.xml
或:
sudo nano /var/lib/tomcat9/webapps/manager/META-INF/context.xml
原内容:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
✅ 改为(或注释掉):
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
⚠️ 生产环境建议:
使用防火墙或只放行固定 IP,而不是完全关闭限制。
sudo systemctl restart tomcat9
查看状态:
sudo systemctl status tomcat9
浏览器访问:
http://服务器IP:8080/manager/html
使用你配置的用户名 / 密码登录。
如果你只是用于 CI/CD 自动部署,推荐这样配置:
<role rolename="manager-script"/>
<user username="deployer" password="deploy123"
roles="manager-script"/>
<!-- --><role rolename="manager-gui"/>
<user username="tomcat" password="密码"
roles="manager-gui"/>
context.xml如果你告诉我:
我可以给你 更精确、更安全的配置方案。