- 首页 >
- 问答 >
-
智能运维 >
- Tomcat在Debian中的权限设置如何操作
Tomcat在Debian中的权限设置如何操作
小樊
33
2025-12-07 23:30:30
在Debian中配置Tomcat权限的完整步骤
一 准备与安装
- 更新系统并安装 Java 与 Tomcat 9(Debian 仓库包):
- sudo apt update
- sudo apt install -y default-jdk tomcat9
- 安装完成后,Tomcat 的主要目录通常为:
- /var/lib/tomcat9(工作目录)
- /var/log/tomcat9(日志)
- /etc/tomcat9(配置)
- 服务名:tomcat9。如使用官方二进制包安装到 /opt/tomcat,路径会不同,见下文差异说明。
二 创建专用系统用户
- 建议创建不可登录的系统用户 tomcat 来运行服务,避免使用 root:
- sudo adduser --system --group --shell /bin/false tomcat
- 说明:
- 该用户仅用于运行进程,不分配登录 shell,提升安全性。
- 若之前已用包管理器安装 tomcat9,系统可能已自动创建 tomcat 用户,可直接使用。
三 设置目录与文件权限
- 按 Debian 打包布局设置所有权(适用于 apt 安装):
- sudo chown -R tomcat:tomcat /var/lib/tomcat9
- sudo chown -R tomcat:tomcat /var/log/tomcat9
- sudo chown -R tomcat:tomcat /etc/tomcat9
- 权限建议(遵循最小权限原则):
- 可执行脚本(bin):仅属主可读/写/执行
- sudo chown -R tomcat:tomcat /usr/share/tomcat9/bin
- sudo chmod -R 700 /usr/share/tomcat9/bin
- 配置目录(conf):属主读写,组读,其他只读
- sudo chown -R tomcat:tomcat /etc/tomcat9
- sudo find /etc/tomcat9 -type f -exec chmod 640 {} ;
- sudo find /etc/tomcat9 -type d -exec chmod 750 {} ;
- 日志目录(logs):属主读写执行,组读执行,其他读执行
- sudo chown -R tomcat:tomcat /var/log/tomcat9
- sudo find /var/log/tomcat9 -type f -exec chmod 640 {} ;
- sudo find /var/log/tomcat9 -type d -exec chmod 750 {} ;
- 工作与发布目录(webapps、work、temp):属主读写执行,组读执行,其他读执行
- sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps /var/lib/tomcat9/work /var/lib/tomcat9/temp
- sudo find /var/lib/tomcat9/webapps /var/lib/tomcat9/work /var/lib/tomcat9/temp -type f -exec chmod 640 {} ;
- sudo find /var/lib/tomcat9/webapps /var/lib/tomcat9/work /var/lib/tomcat9/temp -type d -exec chmod 750 {} ;
- 如使用官方二进制包安装到 /opt/tomcat,将上述路径替换为 /opt/tomcat 对应子目录,保持相同的属主与权限模型。
四 配置服务以tomcat用户运行
- 方式 A(推荐,使用 Debian 提供的服务单元):
- 确认服务以 tomcat 用户运行:
- sudo systemctl edit --full tomcat9
- 在 [Service] 中确保:User=tomcat,Group=tomcat
- 重新加载并重启:
- sudo systemctl daemon-reload
- sudo systemctl restart tomcat9
- sudo systemctl status tomcat9
- 方式 B(手动创建或修改 systemd 单元,适用于自定义安装):
- 示例单元文件 /etc/systemd/system/tomcat.service(按需调整路径与 JAVA_HOME):
- [Unit]
- Description=Apache Tomcat Web Application Container
- After=network.target
- [Service]
- Type=forking
- User=tomcat
- Group=tomcat
- Environment=“JAVA_HOME=/usr/lib/jvm/default-java”
- Environment=“CATALINA_PID=/var/run/tomcat9.pid”
- Environment=“CATALINA_HOME=/usr/share/tomcat9”
- Environment=“CATALINA_BASE=/var/lib/tomcat9”
- Environment=“CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC”
- Environment=“JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom”
- ExecStart=/usr/share/tomcat9/bin/startup.sh
- ExecStop=/usr/share/tomcat9/bin/shutdown.sh
- UMask=0007
- Restart=always
- RestartSec=10
- [Install]
- WantedBy=multi-user.target
- 启用与启动:
- sudo systemctl daemon-reload
- sudo systemctl enable --now tomcat.service
- 验证进程归属:
- ps -ef | grep tomcat(应显示以 tomcat 用户运行)。
五 Web管理界面与访问控制
- 配置管理用户(编辑 /etc/tomcat9/tomcat-users.xml,按需调整):
- sudo nano /etc/tomcat9/tomcat-users.xml
- 示例(请使用强密码并妥善保管):
- 若启用了防火墙,放行 8080(或 8443)端口:
- sudo ufw allow 8080/tcp
- 或仅内网访问:sudo ufw allow from 192.168.1.0/24 to any port 8080
- 安全提示:
- 不要为管理界面开放公网访问;必要时仅在内网开放,并使用反向代理与 HTTPS。
- 定期更新 Tomcat 与 Java,并审计日志(/var/log/tomcat9/)。