You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04.2 LTS下AppArmor拒绝ptrace操作的问题求助

Ubuntu 22.04.2 LTS下AppArmor拒绝ptrace操作的问题求助

问题背景

我写了一个C程序和对应的Makefile,编译生成了.ko内核模块文件,之后执行了以下命令加载模块并查看系统日志:

sudo insmod filename.ko
sudo sysctl kernel.dmesg_restrict=0
dmesg | tail

结果在dmesg日志里看到一连串AppArmor的拒绝记录,都是关于ptrace读取操作的:

[169396.221688] audit: type=1400 audit(1697726842.148:30133473): apparmor="DENIED" operation="ptrace" class="ptrace" profile="snap.python-ai-toolkit.jupyter" pid=1133 comm="python3" requested_mask="read" denied_mask="read" peer="unconfined"
[169396.221693] audit: type=1400 audit(1697726842.148:30133474): apparmor="DENIED" operation="ptrace" class="ptrace" profile="snap.python-ai-toolkit.jupyter" pid=1133 comm="python3" requested_mask="read" denied_mask="read" peer="unconfined"
...(其余重复日志省略)

我排查后确认这个问题和自己写的代码无关,系统是Ubuntu 22.04.2 LTS,想请教下该怎么解决这个权限限制?

可能的解决方案

临时缓解方法(重启后失效)

如果只是临时需要绕过这个限制,可以把对应的AppArmor配置改成"仅记录不拦截"模式:

  1. 先查看当前该snap的AppArmor状态:
sudo aa-status
  1. 临时切换到complain模式:
sudo aa-complain /var/lib/snapd/apparmor/profiles/snap.python-ai-toolkit.jupyter

这样ptrace读取操作会被允许,同时系统还会记录日志,方便你后续确认是否真的不再需要这个限制。

永久解决方法

如果需要让修改永久生效,可以编辑AppArmor的配置文件:

  1. 把当前的snap profile复制到可编辑的系统目录:
sudo cp /var/lib/snapd/apparmor/profiles/snap.python-ai-toolkit.jupyter /etc/apparmor.d/
  1. 编辑复制后的配置文件,添加允许ptrace读取的规则:
sudo nano /etc/apparmor.d/snap.python-ai-toolkit.jupyter

在文件合适的位置(比如权限规则段)添加一行:

ptrace read peer=unconfined,
  1. 重新加载AppArmor配置使修改生效:
sudo apparmor_parser -r /etc/apparmor.d/snap.python-ai-toolkit.jupyter

这样修改后即使重启系统,规则也会保留。

替代方案:改用非snap版本的Python/Jupyter

如果不想折腾AppArmor配置,也可以考虑卸载snap版本的工具,改用apt安装的原生版本:

sudo snap remove python-ai-toolkit
sudo apt install python3 python3-pip
pip3 install jupyter

原生版本不会受snap的AppArmor sandbox限制,使用起来可能更省心。

备注:内容来源于stack exchange,提问作者Shwarz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:08:00