Ubuntu 上 Tomcat 访问权限配置
一 运行账户与目录权限
- 创建专用的系统用户运行 Tomcat,禁止 root 直接运行,提升安全性:
- 创建用户与组:sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
- 调整目录归属与权限,确保最小权限原则:
- 配置目录可读可执行:sudo chgrp -R tomcat /opt/tomcat/conf;sudo chmod -R g+r /opt/tomcat/conf;sudo chmod g+x /opt/tomcat/conf
- 可执行脚本:sudo chmod +x /opt/tomcat/bin/*.sh
- 工作目录归属:sudo chown -R tomcat /opt/tomcat/webapps /opt/tomcat/work /opt/tomcat/temp /opt/tomcat/logs
- 说明:避免使用 777 这类过宽权限,优先采用基于用户/组的精细化授权。
二 远程访问与防火墙
- 监听地址与端口:编辑 /opt/tomcat/conf/server.xml,在 HTTP Connector 中设置 address 与端口,例如:
- 防火墙放行(UFW 示例):sudo ufw allow 8080/tcp;如需白名单:sudo ufw allow from 192.168.1.100 to any port 8080
- 云服务器场景:除本机防火墙外,还需在云平台安全组放行对应端口(如 8080/TCP)。
三 管理界面与角色权限
- 编辑 /opt/tomcat/conf/tomcat-users.xml,为管理界面创建受限账户与最小角色:
- 建议仅赋予必要角色,禁用默认示例账户;示例:
- 建议仅赋予必要角色,禁用默认示例账户;示例:
- 出于安全考虑,生产环境可限制管理接口的访问来源(如仅内网或跳板机)。
四 可选 基于组的团队协作授权
- 创建业务组(如 webadmin),将需要管理 Tomcat 的人员加入该组,并按需授权目录:
- 建组与用户:sudo adduser webadmin;将相关人员加入组:sudo usermod -aG webadmin alice
- 目录授权示例:
- 配置目录对组可读:sudo chown -R root:webadmin /opt/tomcat/conf;sudo chmod -R g+r /opt/tomcat/conf;sudo chmod g+x /opt/tomcat/conf
- 工作目录对组可写:sudo chown -R tomcat:webadmin /opt/tomcat/webapps /opt/tomcat/logs /opt/tomcat/work /opt/tomcat/temp
- 这样可在不赋予系统 root 权限的前提下,实现团队成员对 Tomcat 的安全协作。
五 systemd 服务与最小权限运行
- 创建服务文件 /etc/systemd/system/tomcat.service,以 tomcat 用户运行:
- [Unit]
- Description=Apache Tomcat Web Application Container
- After=network.target
- [Service]
- Type=forking
- User=tomcat
- Group=tomcat
- Environment=“JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64”
- Environment=“CATALINA_PID=/opt/tomcat/temp/tomcat.pid”
- Environment=“CATALINA_HOME=/opt/tomcat”
- Environment=“CATALINA_BASE=/opt/tomcat”
- ExecStart=/opt/tomcat/bin/startup.sh
- ExecStop=/opt/tomcat/bin/shutdown.sh
- [Install]
- WantedBy=multi-user.target
- [Unit]
- 使配置生效并启动:sudo systemctl daemon-reload;sudo systemctl start tomcat;sudo systemctl enable tomcat
- 验证:sudo systemctl status tomcat;日志:tail -f /opt/tomcat/logs/catalina.out。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1482731.html