Snap版Brave浏览器AppArmor权限错误导致Ubuntu系统崩溃的排查与解决请求
Snap版Brave浏览器AppArmor权限错误导致Ubuntu系统崩溃的排查与解决请求
看起来你的系统崩溃前,Snap版Brave浏览器触发了一系列AppArmor权限拒绝事件,这大概率就是导致崩溃的核心诱因。咱们一步步来分析和解决这个问题:
问题根源分析
从你提供的syslog日志里能看到关键线索:
- 崩溃前连续出现三条AppArmor拒绝记录,都是Snap封装的Brave浏览器(
snap.brave.brave)试图读取/proc/pressure/cpu、/proc/pressure/io、/proc/pressure/memory这几个系统资源状态文件,但被AppArmor的沙箱策略直接阻止了。 - 这些
/proc/pressure文件是Linux内核用来暴露系统压力状态的接口,Brave的后台线程(ThreadPoolForeg)应该是在尝试获取系统资源使用情况,但Snap默认的AppArmor规则没有开放这个权限。 - 单次权限拒绝一般不会搞崩系统,但如果浏览器反复尝试访问这些被禁止的资源,可能引发资源泄漏或者内核层面的异常,最终导致系统崩溃。
具体解决方法
这里给你几个不同层级的解决方案,你可以根据自己的需求选择:
临时缓解:调整Brave的AppArmor策略
如果想继续用Snap版Brave,可以手动修改AppArmor规则开放权限:
- 先把当前的Brave AppArmor配置文件复制到可编辑的用户目录:
sudo cp /var/lib/snapd/apparmor/profiles/snap.brave.brave ~/snap.brave.brave.edit - 用文本编辑器打开这个文件(比如
nano):nano ~/snap.brave.brave.edit - 在文件里找到类似
/proc/** r,的规则行附近,添加允许读取压力文件的规则:/proc/pressure/* r, - 加载修改后的配置文件:
sudo apparmor_parser -r ~/snap.brave.brave.edit - 重启Brave浏览器,之后观察syslog是否还会出现权限拒绝的日志。
长期方案:切换到官方Debian包版Brave
Snap的沙箱机制有时候权限限制过于严格,容易出现这类兼容性问题。如果你不想折腾AppArmor配置,可以直接安装官方Debian包版本:
- 先卸载Snap版Brave:
sudo snap remove brave - 添加Brave官方软件源:
sudo apt install curl sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list - 安装Brave浏览器:
这个版本不受Snap沙箱的权限限制,能从根源避免这类AppArmor相关的问题。sudo apt update && sudo apt install brave-browser
额外排查:更新系统内核
如果调整权限后还是出现崩溃,建议检查并更新系统内核——Ubuntu 22.04的5.15系列内核有不少稳定修复更新,可能能解决潜在的内核层面bug:
sudo apt update && sudo apt upgrade linux-generic
更新完成后重启系统,再观察运行情况。
按照上面的方法操作后,应该能解决这个由AppArmor权限限制引发的系统崩溃问题。如果还有其他异常,欢迎补充更多日志细节。
备注:内容来源于stack exchange,提问作者noah healy




