Чому 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

Мій користувач, йонран , може чудово його прочитати:

~/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 і встановіть вашу файлову систему запобіжників за допомогою allow_otherабо allow_rootяк опції.


5
Я єдиний, хто це читав, і досі НЕ маю уявлення, що насправді робити? enable_other йде в / etc / fstab? Десь в іншому місці?
Warren P

Я на це теж зараз дивлюсь. Я думаю, ви можете просто додати "enable_root" до свого /etc/fuse.conf. Тоді всі FUSE Fs будуть доступні кореневими. Для кожного, хто приходить таким чином, це проблема для файлової системи kbfs keybase, яка працює без дозволу_root.
Діагон

Щоб розробити з man mount.fuse: розділ Конфігурації: "Деякі параметри щодо політики монтажу можна встановити у файлі /etc/fuse.conf." (наприклад, user_allow_other). Розділ Загальні параметри монтажу: "enable_other: Цей параметр відміняє міру безпеки, що обмежує доступ файлу до користувача, який монтує файлову систему. Тому всі користувачі (включаючи root) можуть отримувати доступ до файлів. Ця опція за замовчуванням дозволена лише до root, але це обмеження може буде видалено за допомогою параметра конфігурації, описаного в попередньому розділі. "
gatoWololo

1
@WarenP: в основному ви хочете зробити це: 1) відлуння "user_allow_other"> /etc/fuse.conf 2) Кожен раз, коли ви запускаєте програму на основі запобіжників, додайте опцію -o enable_other, тому точка монтажу буде доступна іншим користувачам . (Приклад: SSHFS ./mountpoint -o allow_other) - це працює , тому що всі програми , що працюють над FUSE успадкованих параметрів командного рядка запобіжника (як allow_other)
felipeek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.