SELinux 与 AppArmor 对比
核心差异一览
| 维度 | SELinux | AppArmor |
|---|---|---|
| 安全模型与粒度 | 基于**安全标签(上下文)**的系统级 MAC,细粒度强约束 | 基于路径的应用级 MAC,规则直观 |
| 默认发行版 | RHEL、Fedora、CentOS 默认启用 | Ubuntu、openSUSE 默认启用 |
| 策略形式 | 策略/类型强制(TE),规则需编译为策略模块 | 文本配置文件,无需编译 |
| 模式 | Enforcing / Permissive / Disabled | Enforce / Complain |
| 文件系统依赖 | 需要支持**扩展属性(xattrs)**以存储标签 | 对文件系统无特殊要求 |
| 典型侧重点 | 系统级最小权限、跨进程/跨容器一致边界 | 快速为关键应用(如 Nginx、MySQL)上“安全带” |
| 容器生态 | 提供容器标签与隔离能力(如 MCS/MLS) | Docker 可用默认 docker-default 或自定义 profile |
| 学习与排障 | 学习曲线陡峭,依赖日志与工具(如 audit2allow) | 学习曲线平缓,aa-status/aa-logprof 等工具易上手 |
| 典型命令 | getenforce、setenforce、sestatus、semanage、audit2allow | aa-status、aa-enforce、aa-complain、apparmor_parser |
| 以上对比要点来自对两者在模型、发行版默认、策略形式、模式、文件系统依赖、容器支持与运维工具的综合梳理。 |
工作原理简述
如何选择与落地
快速上手与排障命令