CentOS Tomcat权限设置要点
1. 创建专用Tomcat用户与用户组
为避免以root权限运行Tomcat带来的安全风险,需创建专用用户及用户组。推荐使用-M(不创建家目录)、-s /sbin/nologin(禁止登录)参数限制用户权限:
sudo groupadd tomcat
sudo useradd -M -s /sbin/nologin -g tomcat tomcat
2. 调整Tomcat目录所有权与权限
将Tomcat安装目录(如/opt/tomcat)的所有者设为tomcat用户及用户组,权限设为755(所有者可读/写/执行,其他用户仅可读/执行),防止未授权修改:
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R 755 /opt/tomcat
3. 配置Systemd服务以指定运行用户
编辑Tomcat的Systemd服务文件(通常位于/etc/systemd/system/tomcat.service),在[Service]部分明确User和Group为tomcat,并设置UMask=0007(限制新创建文件权限为770,防止其他用户访问):
[Service]
User=tomcat
Group=tomcat
UMask=0007
Restart=always
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
修改后需重载Systemd配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart tomcat
4. 配置SELinux(若系统启用)
若SELinux处于Enforcing模式(sestatus命令验证),需调整策略允许Tomcat访问资源:
- 允许Tomcat执行内存操作(如JSP编译):
sudo setsebool -P tomcat_execmem 1 - 设置Tomcat目录的SELinux上下文:
sudo chcon -R -t httpd_sys_content_t /opt/tomcat # 允许读取静态内容 sudo chcon -R -t httpd_sys_rw_content_t /opt/tomcat/logs # 允许写入日志
5. 管理Tomcat用户与角色
编辑conf/tomcat-users.xml文件,添加角色(如manager-gui、admin-gui)及对应用户,控制对管理界面的访问:
<
tomcat-users>
<
role rolename="manager-gui"/>
<
role rolename="admin-gui"/>
<
user username="admin" password="strong_password" roles="manager-gui,admin-gui"/>
<
/tomcat-users>
修改后需重启Tomcat使配置生效。
6. 限制网络访问
使用firewalld限制Tomcat端口(默认8080)的访问,仅允许可信IP或网络段访问:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
若需更严格的访问控制,可通过context.xml添加IP过滤(如仅允许本地访问管理界面):
<
Context>
<
Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1|10\.0\.0\.0/8"/>
<
/Context>
7. 解决资源限制问题
编辑/etc/security/limits.d/90-nproc.conf文件,增加Tomcat用户的进程数和文件描述符限制,避免因资源不足导致服务崩溃:
tomcat soft nproc 4096
tomcat hard nproc 8192
tomcat soft nofile 4096
tomcat hard nofile 16384
修改后可通过ulimit -a命令验证设置是否生效。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Tomcat权限设置要点
本文地址: https://pptw.com/jishu/738522.html
