centos

centos中tomcat权限设置要点

小樊
60
2025-11-05 19:52:26
栏目: 智能运维

1. 创建专用Tomcat用户与用户组
为避免以root用户运行Tomcat带来的安全风险,需创建专用的非特权用户及用户组。推荐使用系统账户(无登录shell),命令如下:

sudo groupadd tomcat
sudo useradd -r -s /sbin/nologin -g tomcat -d /opt/tomcat tomcat

其中,-r表示创建系统账户,-s /sbin/nologin禁止用户登录系统,-d指定Tomcat安装目录(需根据实际路径调整)。

2. 调整Tomcat目录所有权与权限
将Tomcat安装目录及其子目录的所有权赋予tomcat用户及用户组,确保进程有权访问所需文件,同时限制其他用户的访问权限:

sudo chown -R tomcat:tomcat /opt/tomcat  # 将/opt/tomcat替换为实际安装路径
sudo chmod -R 755 /opt/tomcat/bin/*.sh   # 仅为启动/停止脚本添加执行权限

关键目录权限说明

3. 配置Tomcat以专用用户运行
通过Systemd服务文件确保Tomcat启动时使用tomcat用户身份,避免权限提升风险。编辑/etc/systemd/system/tomcat.service(若不存在则创建),在[Service]部分添加以下内容:

[Service]
User=tomcat
Group=tomcat
UMask=0007  # 设置umask,确保新创建文件权限为750(所有者可读写执行,组可读执行,其他无权限)
RestartSec=10
Restart=always

之后重新加载Systemd配置并启动Tomcat:

sudo systemctl daemon-reload
sudo systemctl enable tomcat  # 开机自启
sudo systemctl start tomcat   # 立即启动

4. 配置SELinux(若系统启用)
若SELinux处于Enforcing模式(sestatus命令验证),需调整策略以允许Tomcat访问资源:

# 允许Tomcat执行内存操作(如动态类加载)
sudo setsebool -P tomcat_execmem 1
# 设置Tomcat安装目录的SELinux上下文(httpd_sys_content_t:允许Web服务器读取)
sudo chcon -R -t httpd_sys_content_t /opt/tomcat
# 设置日志目录的SELinux上下文(httpd_sys_rw_content_t:允许读写)
sudo chcon -R -t httpd_sys_rw_content_t /opt/tomcat/logs

注意:若需永久修改SELinux布尔值,需添加-P参数;若需彻底禁用SELinux(不推荐),可编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive,并重启系统。

5. 优化Tomcat配置文件权限
限制配置文件的访问权限,防止未经授权的修改:

sudo chmod -R 750 /opt/tomcat/conf  # 配置文件目录仅所有者(tomcat)和组可读写
sudo chmod 640 /opt/tomcat/conf/*   # 单个配置文件(如server.xml、web.xml)设置为所有者读写、组读

关键配置文件说明

6. 安全加固措施

0
看了该问题的人还看了