centos

Tomcat在CentOS上的权限设置有哪些

小樊
50
2025-09-22 04:49:55
栏目: 智能运维

1. 创建专用Tomcat用户和用户组
为避免以root权限运行Tomcat(降低安全风险),需创建专用用户及用户组。常用命令如下:

sudo groupadd tomcat  # 创建tomcat用户组
sudo useradd -M -s /sbin/nologin -g tomcat -d /opt/tomcat tomcat  # 创建用户(无登录权限,指定家目录)

其中,-M表示不创建家目录,-s /sbin/nologin禁止用户登录系统,-d指定家目录为Tomcat安装路径。

2. 更改Tomcat目录所有权
将Tomcat安装目录(如/opt/tomcat)的所有者和用户组设置为tomcat,确保Tomcat进程有权访问:

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

3. 设置目录权限
为目录分配合理权限,兼顾访问需求与安全性:

sudo find /opt/tomcat -type d -exec chmod 755 {} \;  # 递归设置目录权限
sudo find /opt/tomcat -type f -exec chmod 644 {} \;  # 递归设置文件权限

此外,需为启动脚本添加执行权限:

sudo chmod +x /opt/tomcat/bin/*.sh  # 允许执行startup.sh、shutdown.sh等脚本

4. 配置Tomcat服务以专用用户运行
通过修改Systemd服务文件,确保Tomcat启动时使用tomcat用户:
编辑/etc/systemd/system/tomcat.service(若未创建,可复制默认模板),在[Service]部分添加:

[Service]
User=tomcat
Group=tomcat
UMask=0007  # 设置文件创建掩码(默认权限为777-0007=770)
RestartSec=10
Restart=always

然后重新加载Systemd并重启Tomcat:

sudo systemctl daemon-reload
sudo systemctl restart tomcat

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

6. 配置防火墙
允许外部访问Tomcat默认端口(8080),若使用其他端口需相应调整:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp  # 永久添加端口规则
sudo firewall-cmd --reload  # 重新加载防火墙配置

7. 删除默认应用(可选但推荐)
首次安装后,删除webapps目录下的默认应用(如ROOTexamples),防止恶意代码部署:

sudo rm -rf /opt/tomcat/webapps/*

8. 隐藏Tomcat版本信息(可选)
修改server.xml中的Connector标签,添加server属性,隐藏Tomcat版本:

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" 
           server="MyAppServer/1.0" />

9. 关闭自动部署(可选但推荐)
server.xmlContext标签中,设置autoDeploy="false"unpackWARs="false",防止恶意WAR文件自动部署:

<Context docBase="/opt/tomcat/webapps/yourapp" 
         unpackWARs="false" 
         autoDeploy="false" />

0
看了该问题的人还看了