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

如何为Snap版Firefox在AppArmor中添加额外下载目录(含sshfs挂载路径)

如何为Snap版Firefox在AppArmor中添加额外下载目录(含sshfs挂载路径)

我太懂你这种被AppArmor和Snap沙箱双重限制的崩溃感了——尤其是还生成了一堆空文件,清理起来都麻烦。别慌,咱们一步步来解决:

第一步:先搞定sshfs挂载的权限匹配(推荐)

看你dmesg里的日志,sshfs目录的所有者是uid=1006,而你的用户uid是1000,这种跨uid的权限本身就容易触发Snap的限制。咱们先把挂载的目录改成属于你自己:

  • 如果是通过fstab挂载的,编辑/etc/fstab,找到你的sshfs条目,加上uid=1000,gid=1000参数,比如:
    user@remote:/remote/path /home/mike/sshfs fuse.sshfs defaults,uid=1000,gid=1000 0 0
    
  • 如果是手动挂载的,下次挂载用这个命令:
    sshfs user@remote:/remote/path /home/mike/sshfs -o uid=1000,gid=1000
    

这样挂载后,目录里的文件权限就和你的用户匹配,减少后续权限问题。

第二步:给Snap版Firefox添加AppArmor访问规则

直接修改Snap默认的AppArmor配置会被更新覆盖,所以咱们用本地自定义规则的方式:

  1. 打开终端,创建并编辑本地规则文件:
    sudo nano /etc/apparmor.d/local/snap.firefox.firefox
    
  2. 在文件里添加以下内容(替换成你的sshfs目录路径):
    # 允许Firefox访问我的sshfs下载目录
    /home/mike/sshfs/ r,
    /home/mike/sshfs/** rwk,
    
    解释一下:
    • 第一行允许读取目录本身的信息
    • 第二行允许目录下所有文件/子目录的读、写、创建/删除操作
  3. 保存退出后,重新加载AppArmor规则:
    sudo systemctl restart apparmor
    

第三步:确保Snap的FUSE接口已连接

因为sshfs是FUSE文件系统,Snap版Firefox需要权限访问FUSE挂载的目录,检查并连接接口:

  1. 先看当前的接口连接状态:
    snap connections firefox
    
  2. 如果看到fuse接口的plug是firefox:fuse,但slot是空的,执行:
    sudo snap connect firefox:fuse
    

最后验证

重启Firefox,尝试下载文件到你的sshfs目录,这次应该不会再冻结或者报错了。如果还有问题,再检查dmesg或者journalctl -xe | grep apparmor,看看有没有新的拒绝日志,再调整规则。

对了,你之前停了AppArmor还是报错,是因为Snap本身还有沙箱的mount namespace限制,不是只有AppArmor在管,所以必须通过上面的步骤来放行权限才行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:34:08