跳到主要内容
常见问题 SELinux策略安全

SELinux 策略改坏了?

自定 SELinux 策略装坏后系统异常的处理:先切 permissive 止血、定位坏模块重打包重装、最后恢复 enforcing,给完整恢复流程。

发布于 2026/11/11 所属频道 银河麒麟

简短答案

策略装坏(semodule -i 报错、装完策略服务起不来)的标准动作是三步:先临时切 permissive 止血,再卸掉坏模块、重新打包重装,最后回 enforcing。记住:permissive 只是止血,不是长期方案。

现象对照表

现象 说明
semodule -i 报策略加载失败 自定义包与基线策略版本不匹配
装完策略某服务起不来 自定义规则把该服务的合法访问挡了
getenforce 显示 Permissive 之前止血后忘了改回 enforcing
日志大量 denied 但业务正常 处于 permissive,只记录不拦截

排查步骤

# 看当前模式与策略版本
getenforce
rpm -q 策略包名            # 策略包名以系统实际安装为准

# 止血:切 permissive(重启不生效则只改内存态)
setenforce 0

# 定位:看拒绝记录
ausearch -m av -ts recent | tail -30
journalctl -g since today | grep -i denied

# 修复:卸坏模块 → 重打包重装 → 回 enforcing
semanage module -r 模块名
semodule -i 模块名.pp
setenforce 1

切 permissive 前先把 /etc/selinux/config 改回 enforcing 的待办写进任务单,避免止血忘恢复。

处理办法

  • 策略包版本不匹配:在基线系统上重新打包(先 semodule -p 核对再重编);基线参考 服务器 V11 条目 的发行说明;
  • 规则过严:用 semanage 收窄到具体服务与端口,不做整域放行;
  • 标签错乱:semanage fcontext 补规则后执行 restorecon -R 目录;
  • 整系统恢复:介质取 银河麒麟镜像列表,按 Rufus 启动盘条目 重写 U 盘。

操作小结

  1. 先 permissive 止血,别硬顶 enforcing 排查;
  2. 用 ausearch 找具体拒绝项;
  3. 模块先 r 再 i,装完回 enforcing 验证;
  4. 止血后把 config 恢复项排进计划,防止遗忘。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常见问题

同一集合内的相近主题,按标签与关键词匹配