如何在Snap文件系统沙箱中添加指定可访问目录(以/dev/shm为例)
如何在Snap文件系统沙箱中添加指定可访问目录(以/dev/shm为例)
嘿,我完全懂你频繁使用/dev/shm内存磁盘的痛点——想让各类应用(比如浏览器)都能读取这里的文件,但Snap应用的沙箱机制确实会卡住这个权限。之前用--devmode安装应用的思路虽然能走通,但两个缺点实在让人头疼:
- 每个需要访问的应用都得单独操作,太繁琐
- 直接给应用开放所有权限,安全性完全没保障
下面给你几个更精准的解决方案,既能让Snap应用访问/dev/shm,又不会过度放开权限:
方法一:针对单个应用手动连接system-files接口
这是最推荐的方式,能精准给特定应用授予/dev/shm的访问权限。比如你要给Snap版Chromium浏览器授权,只需要在终端执行:
sudo snap connect chromium:system-files /dev/shm
注意:不同应用的Snap包名可能不一样,比如Firefox的包名是
firefox,替换成你需要的应用名即可。另外,有些严格沙箱的应用可能没声明对system-files接口的支持,这时候可以试试下面的方法。
方法二:全局配置Snap沙箱的目录访问规则(适合多应用场景)
如果有多个Snap应用都需要访问/dev/shm,可以通过修改snapd的全局配置来批量设置:
- 创建自定义配置文件:
sudo touch /etc/snapd/snap.conf.d/shm-access.conf
- 用文本编辑器打开这个文件,添加以下内容(授予只读权限,需要写入的话把
r改成rw):
system-files: /dev/shm: r
- 重启
snapd服务让配置生效:
sudo systemctl restart snapd
注意:这个方法需要你的
snapd版本支持全局配置,较旧版本可能不兼容,可执行snap version查看当前版本。
方法三:使用--classic模式安装应用(谨慎使用)
如果上面的方法都不适用,你可以选择用--classic限制模式安装应用,这种模式下应用的沙箱限制会大幅降低,默认就能访问/dev/shm这类系统目录。比如安装Chromium:
sudo snap install chromium --classic
提醒:
--classic模式虽然比--devmode安全一些,但仍然会给应用更多系统权限,仅在必要时使用。
备注:内容来源于stack exchange,提问作者Pietro
相关产品推荐
相关产品推荐

