Linux SELinux关闭与安全配置

什么是SELinux?什么时候需要关闭?

SELinux(Security-Enhanced Linux)是内核级安全模块,通过强制访问控制限制进程权限。
默认开启(Enforcing)时,常导致Nginx、MySQL或SSH等服务因权限不足而报错。
新手排查困难时,优先关闭SELinux是常见操作,但关闭后必须用其他安全手段补位,避免裸奔。

准备工作:确认当前SELinux状态

登录服务器,执行以下命令查看当前模式:

getenforce

输出可能为 Enforcing(开启)、Permissive(只记录不拦截)或 Disabled(关闭)。
若返回 Enforcing,说明正式开启。

临时关闭SELinux(无需重启)

适合快速测试:

sudo setenforce 0

再次运行 getenforce,应显示 Permissive注意:此操作不写入配置文件,重启后恢复原状态。

永久关闭SELinux(重启后生效)

编辑配置文件:

sudo vi /etc/selinux/config

找到 SELINUX=enforcing,改为:

SELINUX=disabled

保存退出,重启服务器生效:

sudo reboot

重启后运行 getenforce 确认输出为 Disabled

关闭SELinux后的安全替代方案

关掉SELinux不代表不管安全,建议执行以下加固:

  • 启用并配置防火墙:使用 firewalldufw 仅开放必要端口(如 80、443、22)。
  • 严格文件权限:确保 /etc/passwd/etc/shadow 等敏感文件权限为 644 或 600。
  • 禁用root远程登录:修改 /etc/ssh/sshd_configPermitRootLogin no
  • 定期安全更新:使用 yum updateapt update && apt upgrade

以上措施可弥补关闭SELinux后的权限管控空缺。

避坑指南:常见问题与恢复方法

Q:修改 /etc/selinux/config 后重启仍然为 Enforcing?
A:检查是否误改 SELINUXTYPE 值;另外某些云镜像会自动覆盖配置,建议重启后用 cat /etc/selinux/config 确认。

Q:临时关闭后服务还是报错?
A:确认是否因应用本身的权限或配置文件错误导致,并非全是SELinux问题。可查看 /var/log/audit/audit.log 有无 avc 拒绝记录。

Q:如何恢复开启?
A:编辑配置文件改回 enforcing,重启后用 setenforce 1 即可恢复。

验证效果:检查SELinux是否已关闭

无论临时还是永久,最终用以下命令确认:

getenforce

输出 DisabledPermissive 即为关闭成功。
若需验证服务是否正常,重启对应应用后测试访问。

如果你在操作中遇到其他异常,建议先回看避坑部分,也可在本站搜索相关应用(如Nginx、MySQL)的SELinux排错进一步排查。

分享到:
上一篇
Linux crontab定时任务运维脚本新手实操指南
下一篇
Linux ssh密钥登录禁用密码
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意