~/.gvfs 中不可用的 GVFS 位置

~/.gvfs 中不可用的 GVFS 位置

因此,我可以从 Gnome“位置”菜单或通过命令行正确挂载 GVFS 位置(特别是 CIFS)gvfs-mount,但文件系统未挂载在预期位置;~/.gvfs。事实上,运行该mount命令根本没有列出任何 GVFS 文件系统。

  • 非 root 用户可以重现此情况,而 root 用户的行为则符合预期。
  • Strace 揭示了用户在挂载路径 /home/username/.gvfs 的文件系统时出现权限错误。
  • 所有权和权限是正确的,并且没有显示的路径扩展属性lsattr
  • 此外,/root/.gvfs 和 /home/username/.gvfs 位于同一个文件系统上。
  • 所有包裹都是最新的。

有任何想法吗?

编辑:

看完之后这个问题,发现gvfs-fuse-daemon没有启动,尝试手动运行它。

$ /usr/libexec/gvfs-fuse-daemon ~/.gvfs fuse: 无法执行 fusermount:权限被拒绝

因此,我看到的权限被拒绝strace是在 上/bin/fusermount,而不是目标路径上/home/username/.gvfs。但是,/bin/fusermount是 setuid,因此非特权用户应该能够以 root 身份运行它。我不喜欢弄乱权限,但给了/bin/fusermounto+rx 进行测试。它执行并修复了问题。 那么,为什么非 root 用户必须手动运行此守护程序?这似乎也是 Ubuntu 的问题,但在另一个问题中没有得到解答。

编辑:2012 年 7 月 10 日

我了解到我不应该将 o+rx 提供给 /bin/fusermount,而应该将用户添加到 fuse 组。

答案1

在 Ubuntu 12.10 中,路径发生了改变:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)

相关内容