CentOS7下SELinux无法禁用,求永久禁用有效解决办法
解决CentOS7永久禁用SELinux无效的问题
我来帮你排查下这个困扰——CentOS7上改了配置还关不掉SELinux的情况,我碰到过好多次,大概率是这几个环节没做对:
第一步:先确认当前SELinux的真实状态
先别急着改配置,先搞清楚现在到底是啥状态。在终端里敲这两个命令:
getenforce sestatus
getenforce会直接显示当前模式(Enforcing/Permissive/Disabled),sestatus能看到更详细的配置和运行状态,比如有没有加载SELinux模块。
第二步:检查/etc/selinux/config配置是否真的改对了
很多人以为改了就行,但可能犯了这些小错误:
- 拼写错误:比如把
SELINUX=disabled写成SELINUX=disable(少了个d) - 被重复行覆盖:文件后面可能又出现了一行
SELINUX=enforcing,把前面的设置覆盖了 - 注释没删干净:比如行首还留着
#,导致配置不生效
可以用这个命令过滤掉注释和空行,直接看有效配置:
grep -v "^#" /etc/selinux/config | grep -v "^$"
确保输出里只有SELINUX=disabled和SELINUXTYPE=targeted(后者不影响禁用,只是安全策略类型)。
敲黑板!只重启httpd没用,必须重启整个系统
SELinux是内核级别的安全机制,修改/etc/selinux/config后,只有重启整个系统才能让disabled设置生效——重启httpd服务完全没用!这是绝大多数人踩的坑。
如果不想马上重启,想临时先关掉,可以用这个命令(重启后会失效):
setenforce 0
排查是否被GRUB参数强制启用
有些系统会在GRUB启动参数里强制开启SELinux,这会直接覆盖/etc/selinux/config的设置。检查方法:
- 打开
/etc/default/grub文件,找到GRUB_CMDLINE_LINUX这一行 - 看里面有没有
selinux=1或者enforcing=1,如果有,改成selinux=0 - 重新生成GRUB配置文件:
- MBR引导的系统:
grub2-mkconfig -o /boot/grub2/grub.cfg - UEFI引导的系统:
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- MBR引导的系统:
- 重启系统
最后验证
重启后再敲sestatus,如果看到SELinux status: disabled,就说明成功了。
内容的提问来源于stack exchange,提问作者guesterator_php
相关产品推荐
相关产品推荐

