32

I use a FUSE filesystem with no problems as my own user, but root can't access my FUSE mounts. Instead, any command gives Permission denied. How can I give root the permission to read these mounts?

~/top$ sudo ls -l
total 12
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 bar
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ fuse-zip foo.zip foo
~/top$ unionfs-fuse ~/Pictures bar

My user, yonran, can read it fine:

~/top$ ls -l
total 8
drwxr-xr-x 1 yonran yonran 4096 2011-07-25 18:12 bar
drwxr-xr-x 2 yonran yonran    0 2011-07-25 18:51 foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ ls bar/
Photos

But root can't read either FUSE directory:

~/top$ sudo ls -l
ls: cannot access foo: Permission denied
ls: cannot access bar: Permission denied
total 4
d????????? ? ?      ?         ?                ? bar
d????????? ? ?      ?         ?                ? foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ sudo ls bar/
ls: cannot access bar/: Permission denied

I'm running Ubuntu 10.04: I always install any update from Canonical.

$ uname -a
Linux mochi 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:    10.04
Codename:   lucid

Edit: removed the implication that root used to be able to access the mounts. Come to think of it, maybe my scripts never tried to access the directory as root.

2 Answers 2

31

It's the way fuse works. If you want to allow access to root or others users, you have to add:

user_allow_other

in /etc/fuse.conf and mount your fuse filesystem with allow_other or allow_root as options.

5
  • 7
    Am I the only one who read that and still has NO idea what to actually do? allow_other goes in /etc/fstab? Somewhere else?
    – Warren P
    Sep 12, 2018 at 23:24
  • I'm looking at this too, right now. I think you can just add "allow_root" to your /etc/fuse.conf. Then all FUSE fs's will be accessible by root. For anyone who comes this way, it's an issue for keybase's kbfs filesystem, which runs without allow_root.
    – Diagon
    Nov 25, 2018 at 7:53
  • To elaborate from man mount.fuse: Configurations section: "Some options regarding mount policy can be set in the file /etc/fuse.conf." (like user_allow_other). General Mount Options section: "allow_other: This option overrides the security measure restricting file access to the user mounting the filesystem. So all users (including root) can access the files. This option is by default only allowed to root, but this restriction can be removed with a configuration option described in the previous section."
    – gatoWololo
    Jan 15, 2019 at 22:49
  • 1
    @WarenP: basically you want to do this: 1) echo "user_allow_other" > /etc/fuse.conf 2) Whenever you run your fuse-based program, add the option -o allow_other, so the mountpoint will be accessible by other users. (example: sshfs ./mountpoint -o allow_other) - this works because all programs running over FUSE inherit FUSE's command line options (like allow_other)
    – felipeek
    Feb 11, 2019 at 14:45
  • 1
    @felipeek I know this is two years later, but for anyone just coming upon this: it's echo "user_allow_other" >> /etc/fuse.conf. You don't want to overwrite the file in case you already have stuff in there. May 9, 2021 at 1:55
1

instead of editing system-wide /etc/fuse.conf config file you can use sshfs command line options:

sshfs -o allow_other user@server:/source /destination

edit: thanks to @lilith-elina for pointing out that -o allow_root should not be used there.

1
  • 1
    fuse: 'allow_other' and 'allow_root' options are mutually exclusive Apr 29, 2021 at 14:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.