运行作为 snap 包安装的应用程序时出现权限被拒绝错误 - Ubuntu 17.04

运行作为 snap 包安装的应用程序时出现权限被拒绝错误 - Ubuntu 17.04

运行 snap 应用程序时,我收到权限被拒绝错误,其中我的主目录安装在不允许 root 写入的 nfs 挂载点上。这不是一个不寻常的配置,所以我认为这是一个错误。

错误信息:

cannot create user data directory: /home/tcumming/snap/vlc/4: Permission denied

ubuntu 16 也遇到了同样的问题。

根据要求提供更多信息:

使用 ubuntu,“Ubuntu 软件”,我安装了一个 snap 应用程序(例如,vlc)。当我尝试运行它(从命令行)时,我收到上面的“权限被拒绝”消息。

我刚刚在机器上重新安装了 Ubuntu,因此操作系统没有出现任何问题。我保留了我的 uid:gid,这样我就可以挂载我之前的 nfs 共享。

这是不是挂载点或 nfs 存在问题。出于安全原因,我们的挂载点不是 root 可写的。

我想问题是,我应该提交错误报告吗?我的下一步是什么?

答案1

我遇到这个问题是因为我的主目录是符号链接/home/$USER到另一个挂载点的。我按照以下建议修复了这个问题当 /home 位于其他地方时,快照不起作用

简而言之,您需要将非标准主目录添加到 apparmor 的HOMEDIRS变量中:

$ sudo dpkg-reconfigure apparmor

或者:/etc/apparmor.d/tunables/home.d/创建一个指向你的主目录的挂载点的文件:

@{HOMEDIRS}+=/mnt/hdd/.home/

然后,为了保险起见,您应该删除 apparmor 的缓存并重新启动:

$ sudo rm -f /etc/apparmor.d/cache/* /var/cache/apparmor/snap.*
$ sudo reboot

答案2

Ubuntu 18.04 中也发生了同样的情况。

如果用户主目录不在/home(或/) 挂载下,则无法使用snap。我的 HOMEDIR 位于另一个本地 SSD 磁盘上,但由于它未挂载在 下/home,因此通过 snap 安装的每个包都会失败。

由于 Canonical 正在转向支持 snap,你将不得不放弃这些好东西,比如其他文件系统上的 HOMEDIR、通过 NFS 挂载的等等。

也许 snap 将来会更加灵活,但这不是优先事项: https://forum.snapcraft.io/t/how-can-i-use-snap-when-i-dont-use-home-user/3352/6

现在的解决方法是从包中删除snap和安装东西。*.tar.gz*.deb

答案3

您可以从软件商店设置 Snap 应用程序的权限。

以下步骤在 Ubuntu 20.04 LTS 上测试:

  • 开放软件
  • 选择“已安装”选项卡。将会出现已安装软件的列表。
  • 选择需要提升权限的 snap 包。
  • 在详细视图中,单击“权限”按钮。
  • 点击‘读取/写入可移动存储设备上的文件’旁边的切换按钮。

此方法适用于已安装的硬盘。

参考:

答案4

我们使用域和领域,所以我们的首页路径不是 /home,而是 /home/MYDOMAINCOMPANY/。我通过编辑 /etc/apparmor.d/tunables/home.d/ubuntu 并添加以下行来修复此问题:@{HOMEDIRS}+=/home/MYDOMAINCOMPANY/

保存后,只需重新启动一些服务:systemctl restart apparmor.service snapd.apparmor.service snapd.service snapd.socket

相关内容