首页/系统/信创系统运维速查/SELinux 运行模式查看与切换
安全加固65 条

SELinux 运行模式查看与切换

SELinux 三种模式:enforcing 强制执行、permissive 只记录不拦截、disabled 关闭;改配置文件后重启生效,临时切换用 setenforce 只影响当前运行期。

信创系统运维速查系统更新于 2026-10-13

SELinux 三种模式

SELinux 是内核强制的访问控制机制,有 enforcing、permissive 与 disabled 三种模式:enforcing 强制执行策略并拒绝违规访问,permissive 只记录不拦截,disabled 则完全关闭。临时切换用 setenforce 只影响当前运行期,永久修改要写在 /etc/selinux/config 里并重启。

基本信息

适用平台RPM 系发行版(openEuler、麒麟、统信 UOS 服务器版)
查看模式getenforce 或 sestatus
临时切换setenforce 0 与 setenforce 1
永久配置/etc/selinux/config
适用策略SELINUXTYPE=targeted

典型使用场景

  • 服务报权限拒绝时确认是否由 SELinux 引起
  • 等保整改要求开启强制模式并保留审计
  • 排障期间临时切到 permissive 定位问题
  • 新装主机确认默认模式是否符合基线
  • 从关闭状态切回强制模式前的标签重建

查看与临时切换

查看与临时切换
getenforce            # Enforcing、Permissive 或 Disabled
sestatus              # 模式、策略类型与布尔值统计
setenforce 0          # 临时切到记录模式,仅用于定位问题
setenforce 1          # 切回强制模式
ausearch -m avc -ts recent 2>/dev/null | head   # 查看最近的拒绝记录
journalctl -b | grep -i 'avc: denied' | tail     # 从日志看拒绝条目

永久配置

永久配置
# /etc/selinux/config
# SELINUX=enforcing
# SELINUXTYPE=targeted
ls -Z /data/web | head        # 查看文件的安全上下文
restorecon -Rv /data/web      # 按策略恢复正确标签
touch /.autorelabel && reboot # 从关闭状态切回强制模式前重建标签

三种模式对照

模式行为适用场合
enforcing拒绝并记录违规访问生产默认,等保要求
permissive只记录不拒绝排障定位阶段
disabled完全不启用明确不需要时,需重启生效
切换要求disabled 与启用状态互切需重启由关到开前要重建标签

遇到拒绝怎么查

  • 先看日志里的 avc denied 记录确认被拒对象
  • 确认文件安全上下文是否与预期一致
  • 用 restorecon 恢复正确的标签
  • 需要调整布尔值时查清语义再改
  • 归类为策略问题后按厂商建议放行,而不是直接关闭
各发行版与安装模式的默认值不同,先 sestatus 看现状;从 disabled 切回 enforcing 前必须重建标签,否则可能出现服务异常甚至无法进入图形界面。

易错点

  • 把 setenforce 0 当成解决方案:它只是定位手段,找到原因后要恢复强制模式,长期关闭会失去安全控制
  • 从关闭状态直接改回强制模式:未重建标签会引发大量权限拒绝,先执行标签重建再重启
  • 只看权限位不看安全上下文:权限看起来没问题却被拒绝,多数是标签不对,用 ls -Z 与 restorecon 处理
  • 直接改配置文件不重启:永久配置需要重启才生效,改完要核对 sestatus 的实际值
  • 为省事关掉 SELinux 绕过排障:会掩盖真实的配置错误,问题往往换个形式再次出现

数据来源与参考

  • SELinux 官方 Wiki(selinuxproject.org)
  • man 8 setenforce
  • man 5 selinux_config
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌