Почему root получает разрешение при доступе к каталогу FUSE?


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 имел доступ к монтированию. Если подумать, возможно, мои скрипты никогда не пытались получить доступ к каталогу как root.

Ответы:


24

Это способ fuseработает. Если вы хотите разрешить доступ пользователям root или другим пользователям, вы должны добавить:

user_allow_other

в /etc/fuse.conf и смонтируйте файловую систему fuse с параметрами allow_otherили в allow_rootкачестве параметров.


5
Я единственный, кто прочитал это и до сих пор не знает, что на самом деле делать? allow_other входит в / etc / fstab? Где-нибудь еще?
Уоррен П

Я тоже смотрю на это прямо сейчас. Я думаю, что вы можете просто добавить "allow_root" в ваш /etc/fuse.conf. Тогда все файлы FUSE будут доступны пользователю root. Для тех, кто идет этим путем, это проблема для файловой системы kbfs keybase, которая работает без 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) Каждый раз, когда вы запускаете программу на основе fuse, добавьте опцию -o allow_other, чтобы точка монтирования была доступна другим пользователям. , (пример: sshfs ./mountpoint -o allow_other) - это работает, потому что все программы, работающие через FUSE, наследуют параметры командной строки FUSE (например, allow_other)
felipeek
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.