为什么在访问FUSE目录时root会获得拒绝权限?


24

我以自己的用户身份使用FUSE文件系统,但没有问题,但是root无法访问我的FUSE挂载。相反,任何命令都给出Permission denied。如何授予root权限读取这些安装文件?

~/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

我的用户yonran可以正常阅读:

~/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

但是root无法读取任何FUSE目录:

~/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

我正在运行Ubuntu 10.04:我总是从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

编辑:删除了root曾经能够访问挂载的含义。想一想,也许我的脚本从未尝试过以根用户身份访问目录。

Answers:


24

这就是fuse工作方式。如果要允许访问root用户或其他用户,则必须添加:

user_allow_other

在/etc/fuse.conf中,并使用allow_otherallow_root作为选项挂载您的保险丝文件系统。


5
我是唯一读过那本书但仍然不知道该怎么做的人吗?allow_other放在/ etc / fstab中?别的地方?
沃伦·P

我现在也在看这个。我认为您可以在/etc/fuse.conf中添加“ allow_root”。然后,所有FUSE fs都可以通过root访问。对于以这种方式出现的任何人来说,这都是keybase的kbfs文件系统的问题,该文件系统在没有allow_root的情况下运行。
对角线

要从man mount.fuse中进行详细说明:配置部分:“可以在文件/etc/fuse.conf中设置一些有关安装策略的选项。” (如user_allow_other)。“常规安装选项”部分:“ allow_other:此选项将覆盖限制对安装文件系统的用户的文件访问的安全措施。因此,所有用户(包括root用户)都可以访问文件。默认情况下,此选项仅允许root用户访问,但是此限制可以可以使用上一节中所述的配置选项删除它。”
gatoWololo

1
@WarenP:基本上,您想这样做:1)echo“ user_allow_other”> /etc/fuse.conf 2)每当您运行基于保险丝的程序时,请添加选项-o allow_other,以便其他用户可以访问安装点。(例如:sshfs ./mountpoint -o allow_other)-之所以起作用,是因为在FUSE上运行的所有程序都继承了FUSE的命令行选项(例如allow_other)
felipeek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.