Ubuntu – GVFS Locations Not Available In ~/.gvfs

cifsredhatrhel6Ubuntu

So, I can mount GVFS locations correctly (specifically CIFS) either from the Gnome "Places" menu, or via the command line gvfs-mount, but the filesystem is not mounted in the expected location; ~/.gvfs. In fact, running the mount command does not list any GVFS filesystem at all.

  • This is reproducible for non-root users while the root user behaves as expected.
  • Strace reveals a permissions error for the user mounting the filesystem for the path /home/username/.gvfs.
  • Ownership and permissions are correct and there are no extended attributes for the path as revealed by lsattr.
  • Also, /root/.gvfs and /home/username/.gvfs are on the same filesystem.
  • All packages are current.

Any ideas?

EDIT:

After reading this question, I found that gvfs-fuse-daemon was not started and tried to run it manually.

$ /usr/libexec/gvfs-fuse-daemon ~/.gvfs
fuse: failed to exec fusermount: Permission denied

So, the permission denied I saw in strace was on /bin/fusermount, not the destination path /home/username/.gvfs. However, /bin/fusermount is setuid so unprivileged users should be able to run it as root. I am not fond of mucking with permissions but gave /bin/fusermount o+rx to test. It executes and fixes the problem. So, why does this daemon have to be ran manually for non-root users? It seems to be an Ubuntu issue as well, but that went unanswered in the other question.

EDIT: 7/10/2012

I learned that instead of giving o+rx to /bin/fusermount I should add the user to the fuse group.

Best Answer

In Ubuntu 12.10 the paths were changed:

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