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

Tom*_*ing 46 nfs permissions snap

我在运行 snap 应用程序时收到 Permission denied 错误,其中我的主目录安装在不允许 root-write 的 nfs 安装点上。这不是一个不寻常的配置,所以我认为这是一个错误。

错误信息:

cannot create user data directory: /home/tcumming/snap/vlc/4: Permission denied
Run Code Online (Sandbox Code Playgroud)

ubuntu 16 也有同样的问题。

根据要求提供更多信息:

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

我刚刚在机器上重新安装了 Ubuntu,所以没有搞乱操作系统。我确实保留了我的 uid:gid 以便我可以安装我之前的 nfs 共享。

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

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

est*_*rdo 20

在 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

  • 到目前为止,snap = 有史以来最糟糕的主意。太快了:-p (26认同)
  • 这真的很可悲,而且接近于展示停止,特别是对于 $HOME 驻留在通过 autofs-ldap 挂载的 NFS 或 CIFS 共享的大型部署。 (4认同)
  • “由于 Canonical 开始支持 snap,您将不得不放弃这种好东西,例如其他文件系统上的 HOMEDIR、通过 NFS 挂载的等等。” 我不认为 Canonical 会说服在商业/商业环境中运行 Ubuntu 的人们停止使用集中式网络安装的主目录,转而使用本地目录,这样他们就可以使用“快照包”...... (2认同)
  • 这个问题,或其原因,在我的书中被完全低估了。事情对于大部分用户群不起作用,这不可能是低优先级。 (2认同)

小智 11

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

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

$ sudo dpkg-reconfigure apparmor
Run Code Online (Sandbox Code Playgroud)

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

@{HOMEDIRS}+=/mnt/hdd/.home/
Run Code Online (Sandbox Code Playgroud)

然后,为了更好的衡量,您应该删除 apparmor 的缓存并重新启动:

$ sudo rm -f /etc/apparmor.d/cache/* /var/cache/apparmor/snap.*
$ sudo reboot
Run Code Online (Sandbox Code Playgroud)

  • 不适合我... (4认同)
  • 也适用于非标准主位置(无符号链接),例如“/home/DOMAIN/user” (2认同)
  • 仅在重新启动后才为我工作。我使用第一个选项并编写了用空格分隔的两个目录,例如`/home/carlos /mnt/data` (2认同)

小智 10

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

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

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

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

参考:


小智 6

为了安全起见,Snap 应用程序默认限制在沙箱中。如果您希望快照应用程序能够读取/写入主目录中的数据,则应该以经典模式安装它们。尝试:

rclone install --classic vlc
Run Code Online (Sandbox Code Playgroud)

这应该对你有用。

如果应用程序沙箱是一个问题,那么您可能需要研究firejail