linux

Tomcat在Linux上的权限设置指南

小樊
53
2025-09-29 22:57:57
栏目: 智能运维

1. 创建专用Tomcat用户与用户组
为隔离Tomcat进程权限,避免使用root用户运行,需创建专用系统用户及同名用户组。常用命令如下:

sudo groupadd tomcat          # 创建tomcat用户组
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat  # 创建系统用户(-r表示系统用户,-m创建家目录,-U创建同名组,-s禁止登录)

说明-s /bin/false 禁止Tomcat用户登录系统,降低潜在安全风险;-r 将用户UID设为小于1000的系统用户,符合Linux系统用户规范。

2. 设置Tomcat安装目录所有权
将Tomcat安装目录(如/opt/tomcat)的所有者及所属组设为tomcat,确保Tomcat进程有权访问自身文件:

sudo chown -R tomcat:tomcat /opt/tomcat  # -R表示递归修改所有子目录及文件的所有权

说明:所有权设置是权限管理的基础,确保Tomcat进程(以tomcat用户身份运行)能读取、执行自身文件。

3. 配置目录与文件权限
根据文件类型分配差异化权限,平衡安全性与功能性:

说明755权限允许管理员查看目录内容,644权限保护敏感配置不被篡改,启动脚本的执行权限是Tomcat正常启动的必要条件。

4. 配置Systemd服务以非root身份运行
通过Systemd服务文件明确指定Tomcat以tomcat用户/组身份运行,避免权限提升风险:
编辑/etc/systemd/system/tomcat.service(若不存在则创建),添加以下内容:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk"  # 根据实际Java路径修改
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M"  # 根据服务器内存调整JVM参数
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007  # 设置文件创建掩码,确保新文件权限为750(所有者可读/写/执行,组可读/执行,其他用户无权限)
RestartSec=10
Restart=always  # 进程崩溃后自动重启

[Install]
WantedBy=multi-user.target

保存后执行以下命令激活配置:

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

说明UMask=0007 确保Tomcat创建的文件(如日志、临时文件)权限为750,防止其他用户访问敏感文件;Restart=always 提高服务稳定性。

5. 验证权限设置

注意事项

0
看了该问题的人还看了