重装Snap后运行multipass version报错:snap-confine权限异常且未被限制
你遇到的这个问题我之前帮朋友排查过,大概率是重装Snap后,AppArmor和Snap的安全关联配置没跟上,给你几个实际有效的解决步骤:
首先先梳理你给出的报错和当前状态:
运行
multipass version时出现错误:
snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks
Please make sure that the snapd.apparmor service is enabled and started.
已确认AppArmor主服务正常运行:
sudo systemctl status apparmor 10:48:49 ● apparmor.service - Load AppArmor profiles Loaded: loaded (/usr/lib/systemd/system/apparmor.service; enabled; preset: enabled) Active: active (exited) since Sun 2024-09-29 08:40:08 WAT; 2h 11min ago Docs: man:apparmor(7) https://gitlab.com/apparmor/apparmor/wikis/home/ Main PID: 1009 (code=exited, status=0/SUCCESS) CPU: 290ms Sep 29 08:40:08 davidshare systemd[1]: Starting apparmor.service - Load AppArmor profiles... Sep 29 08:40:08 davidshare apparmor.systemd[1009]: Restarting AppArmor Sep 29 08:40:08 davidshare app...
接下来按顺序尝试这些操作:
检查并启动
snapd.apparmor专属服务
AppArmor主服务正常不代表Snap的专属AppArmor服务在运行,执行命令查看状态:sudo systemctl status snapd.apparmor如果显示
inactive或者disabled,执行以下命令启用并立即启动:sudo systemctl enable --now snapd.apparmor重新加载Snap相关的AppArmor配置文件
重装Snap后可能配置文件没有正确加载,手动刷新:sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap-confine.*要是这个命令执行有问题,也可以直接重载所有AppArmor配置:
sudo systemctl reload apparmor修复
snap-confine的权限属性
报错提到权限异常,检查snap-confine的setuid权限是否正常:ls -l /usr/lib/snapd/snap-confine正常输出里权限位应该包含
-rwsr-xr-x(注意开头的s),如果没有的话,修复权限:sudo chmod u+s /usr/lib/snapd/snap-confine重新初始化Snap核心组件和Multipass
最后一步,刷新Snap核心并重新安装Multipass,确保所有配置同步:sudo snap refresh core sudo snap install --reinstall multipass
如果以上步骤都试过还是不行,建议重启一次系统,很多时候权限和服务的关联问题重启后会自动修复。
备注:内容来源于stack exchange,提问作者David Essien

