温馨提示×

Tomcat在Debian中的权限设置如何操作

小樊
33
2025-12-07 23:30:30
栏目: 智能运维

在Debian中配置Tomcat权限的完整步骤

一 准备与安装

  • 更新系统并安装 JavaTomcat 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。
    • 定期更新 TomcatJava,并审计日志(/var/log/tomcat9/)。

0