跳到主要内容
常见问题 AppArmorDebian服务故障

Debian 服务被 AppArmor 拦截(denied)?

服务装完或升级后功能异常,多为 AppArmor 策略把越权操作拒了。本文给出现象判断、切投诉模式定位拒绝路径、补规则后恢复的完整可复现路径。

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

简短答案

服务「起不来 / 功能被阉割 / 日志刷 denied」,根因是 AppArmor 策略没覆盖程序实际访问的路径或能力。可复现路径:aa-status 看策略状态 → 内核日志找 denied 记录 → 临时把该 profile 切 complain 模式收集被拒路径 → 补规则后恢复 enforce。

现象对照

现象 常见原因
服务 systemd 报 fail,日志有 apparmor DENIED 策略缺路径或能力
服务能起但某功能无效 enforce 模式拦截了越权访问
升级/重装软件后才出现 新程序路径不在旧 profile 内

Ubuntu 与 Debian 发行条目 覆盖的机器默认都启用 AppArmor,新装的 Debian 13.7 DVD 与 网络安装版 同理,装完即可复现本类问题。

排查步骤

sudo aa-status                                  # 各 profile 的 enforce/complain 状态
journalctl -k | grep -iE 'apparmor|denied' | tail -50
sudo aa-complain /etc/apparmor.d/<profile>      # 临时切投诉模式,只记录不拦截

复现故障、收集到被拒路径后,把规则补进 profile 再恢复:

sudo aa-enforce /etc/apparmor.d/<profile>
sudo apparmor_parser -r /etc/apparmor.d/<profile>
sudo systemctl restart <服务名>

自写程序没有现成 profile 时,用 sudo aa-genprof <程序> 交互式生成;属系统包自带的 profile 优先用 sudo aa-logprof 按日志增量修改,少手改文件。

操作小结

  1. aa-status + 内核日志确认 denied 记录与责任 profile
  2. aa-complain 切投诉模式,复现故障收集被拒路径
  3. 补路径/能力规则,aa-enforce 恢复并重启服务
  4. 系统包自带 profile 用 aa-logprof 修改,便于后续升级覆盖

相关链接

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

相关推荐下载

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

配套 PE 工具

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

其他常见问题

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