debian

Debian系统Tomcat的权限如何设置

小樊
38
2025-10-17 23:18:01
栏目: 智能运维

1. 创建专用Tomcat用户和组
为避免以root用户运行Tomcat带来的安全风险,需创建专用系统用户和组。执行以下命令:

sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

2. 下载并解压Tomcat到专用目录
从Apache官网下载Tomcat(如9.0.x版本),解压至/opt目录(系统级应用推荐路径):

cd /tmp
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.zip
unzip apache-tomcat-9.0.76.zip
sudo mv apache-tomcat-9.0.76 /opt/tomcat

3. 设置Tomcat目录所有权与权限
将Tomcat目录及其子目录的所有权转移至tomcat用户和组,并配置合理权限:

sudo chown -R tomcat:tomcat /opt/tomcat  # 所有权转移
sudo chmod -R 755 /opt/tomcat/bin/*.sh   # 脚本文件可执行权限
sudo chmod -R 750 /opt/tomcat/webapps    # webapps目录限制为组可读
sudo chmod g+s /opt/tomcat               # 设置SGID,确保新建文件继承组权限

4. 配置systemd服务以tomcat用户运行
修改Tomcat的systemd服务文件,强制其以tomcat用户身份启动:

sudo nano /etc/systemd/system/tomcat.service

添加以下内容(若使用Debian自带Tomcat包,需修改/etc/systemd/system/tomcat9.service):

[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=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

5. 重新加载systemd并启动Tomcat
应用服务配置并启动Tomcat:

sudo systemctl daemon-reload  # 重新加载systemd配置
sudo systemctl start tomcat   # 启动Tomcat服务
sudo systemctl enable tomcat  # 设置开机自启

6. 配置Tomcat Web管理界面权限
编辑tomcat-users.xml文件,添加管理用户及角色(如manager-guiadmin-gui):

sudo nano /opt/tomcat/conf/tomcat-users.xml

添加以下内容(替换usernamepassword为强密码):

<tomcat-users>
  <role rolename="manager-gui"/>  <!-- 允许通过Web界面管理 -->
  <role rolename="admin-gui"/>    <!-- 允许访问管理控制台 -->
  <user username="admin" password="SecurePassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>

7. 可选:配置防火墙允许访问
若需从外部网络访问Tomcat(默认端口8080),开放防火墙端口:

sudo ufw allow 8080/tcp  # 允许TCP流量通过8080端口
sudo ufw enable          # 启用防火墙(若未启用)

注意事项

0
看了该问题的人还看了