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

Multipass遭AppArmor权限拦截问题求解(无需迁移文件)

解决Multipass被AppArmor拦截的权限问题

1. 处理/proc/[PID]/maps读取被拒问题

Multipass需要读取进程内存映射文件时,需赋予其进程监控和系统观察权限,通过snap接口实现:

  • 连接process-control接口:
    sudo snap connect multipass:process-control
    
  • 连接system-observe接口:
    sudo snap connect multipass:system-observe
    

2. 允许Multipass读取自定义路径下的debian-cloud-init.yaml

Snap默认限制文件系统访问,需通过AppArmor本地规则扩展权限,确保自定义路径不被迁移:

步骤1:创建AppArmor本地规则文件

针对两个被拦截的profile分别添加规则:

  • 编辑snap.multipass.multipass的本地规则:

    sudo tee /var/snap/multipass/common/etc/apparmor.d/local/snap.multipass.multipass <<EOF
    # 允许访问自定义cloud-init配置文件
    /{你的自定义目录路径}/debian-cloud-init.yaml r,
    /{你的自定义目录路径}/** r,
    EOF
    

    替换{你的自定义目录路径}为实际路径(如/opt/my-cloud-configs)。

  • 编辑snap-update-ns.multipass的本地规则:

    sudo tee /var/snap/multipass/common/etc/apparmor.d/local/snap-update-ns.multipass <<EOF
    # 允许访问自定义cloud-init配置文件
    /{你的自定义目录路径}/debian-cloud-init.yaml r,
    /{你的自定义目录路径}/** r,
    EOF
    

步骤2:重新加载AppArmor规则

sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.multipass.multipass
sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap-update-ns.multipass

特殊场景优化

如果配置文件在用户Home目录,确保home接口已连接:

sudo snap connect multipass:home

如果在外部存储设备,连接removable-media接口:

sudo snap connect multipass:removable-media

3. 验证修复

  • 重启Multipass服务:
    sudo systemctl restart snap.multipass.service
    
  • 重新执行启动脚本,检查系统日志确认无AppArmor拒绝信息:
    journalctl -xe | grep apparmor
    

内容的提问来源于stack exchange,提问作者David Essien

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 21:56:06