最直接的方法是运行 getenforce 命令,它输出当前内核生效的 SELinux 模式:Enforcing(强制执行)、Permissive(仅记录不阻止)或 Disabled(未激活);sestatus 则可区分当前模式与配置文件设定,/etc/selinux/config 决定重启后默认状态。

最直接的方法是运行 getenforce 命令,它会立即返回当前内核中生效的 SELinux 模式,不依赖配置文件,也不需要额外权限(但需 root 才能修改)。
快速确认:用 getenforce 查运行时模式
该命令只输出一行结果,适合脚本判断或终端快速查验:
- Enforcing:策略正在强制执行,违规操作会被拒绝并记录 AVC 日志;
- Permissive:策略已加载但不阻止行为,仅记录警告(audit log),常用于调试;
-
Disabled:SELinux 子系统未激活,
/sys/fs/selinux通常不可挂载,sestatus也会显示disabled。
全面了解:用 sestatus 看完整状态
如果需要区分“当前实际运行状态”和“重启后默认状态”,应使用 sestatus:
-
Current mode:当前内核生效的模式(等同于getenforce输出); -
Mode from config file:来自/etc/selinux/config的设定值,决定下次启动时的模式; -
SELinux status显示enabled或disabled,注意:即使配置为enforcing,若此处显示disabled,说明系统启动时 SELinux 已被彻底关闭(如内核参数含selinux=0)。
检查配置源头:查看 /etc/selinux/config
该文件定义了系统重启后的默认行为。运行以下命令可确认持久化设置:
cat /etc/selinux/config | grep "^SELINUX="- 常见取值:
SELINUX=enforcing、SELINUX=permissive、SELINUX=disabled; - 若命令报错“command not found”,说明
policycoreutils包未安装,需先运行yum install policycoreutils(RHEL/CentOS)或dnf install policycoreutils(Fedora/RHEL 8+)。
注意:setenforce 不是查看命令
setenforce 0 或 setenforce 1 只能临时切换模式(仅限 enforcing ↔ permissive),它本身不输出任何状态信息,执行后终端静默返回。误以为“运行了 setenforce 就等于查了状态”是常见误区。


















