跳到主要内容
系统常识 UbuntuAppArmor安全模块访问控制

Ubuntu 的 AppArmor 安全模块

介绍 AppArmor 是什么、Ubuntu 默认如何启用,服务被 AppArmor 拦截(denied)时怎么查日志、改策略,以及桌面版与服务器版的默认差异。

发布于 2026/11/11 所属频道 Ubuntu 与 Debian

结论先行

AppArmor 是 Ubuntu 默认的强制访问控制(MAC)模块:给每个服务一份「profile」,限定它能读写哪些路径、起哪些子进程。多数情况下它在后台正常工作;你感知到它,通常是因为某个服务被拦截了(日志里的 denied 记录)。

基本状态查看

sudo aa-status              # 已加载 profile 与计数
sudo aa-logprof             # 交互把拒绝记录加进 profile
sudo aa-complain /usr/sbin/xxx   # 临时改「提示不拦」模式调试
sudo aa-enforce /usr/sbin/xxx    # 恢复「拦截」模式

被拦截时的排错链

  1. sudo dmesg | grep apparmor 或 journalctl -k | grep apparmor 找 denied 记录
  2. 记录里会写明:被拦程序、被拒路径、用的哪份 profile
  3. 判断是「误伤」还是「确实该拦」:误伤 → aa-logprof 把该行加入允许;该拦 → 保持

永远不要为图省事把整个 profile 删掉;宁可精细加白名单。complain 模式长期挂着等于形同虚设。

桌面版与服务器版的默认差异

  • 桌面(桌面版条目):出厂即默认启用,图形栈服务大多有 profile
  • 服务器(服务器版条目):同样默认启用;最小安装可能只加载基础 profile,按需再加

默认开启/关闭的具体行为以当期发行版说明为准,可用 aa-status 实测当前机器状态。索引见 Ubuntu 索引页。

相关链接

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

相关推荐下载

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

配套 PE 工具

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

其他常识文章

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