Dlaczego root otrzymuje odmowę dostępu podczas uzyskiwania dostępu do katalogu FUSE?

24

Używam systemu plików FUSE bez problemów jak mój własny użytkownik, ale root nie ma dostępu do moich mocowań FUSE. Zamiast tego każde polecenie daje Permission denied. Jak mogę dać rootowi uprawnienia do odczytu tych montowań?

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

Mój użytkownik, yonran , może to dobrze odczytać:

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

Ale root nie może odczytać żadnego katalogu 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

Używam Ubuntu 10.04: Zawsze instaluję każdą aktualizację z 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

Edycja : usunięto implikację, że root miał dostęp do wierzchowców. Pomyśl o tym, może moje skrypty nigdy nie próbowały uzyskać dostępu do katalogu jako root.

Yonran
źródło

Odpowiedzi:

24

Tak to fusedziała. Jeśli chcesz zezwolić na dostęp do konta root lub innych użytkowników, musisz dodać:

user_allow_other

w /etc/fuse.conf i zamontuj swój system plików bezpieczników za pomocą allow_otherlub allow_rootjako opcji.

smoking
źródło
5
Czy jestem jedynym, który to czyta i nadal NIE ma pojęcia, co właściwie zrobić? allow_other wchodzi do / etc / fstab? Gdzieś indziej?
Warren P
Też na to teraz patrzę. Myślę, że możesz po prostu dodać „allow_root” do /etc/fuse.conf. Wtedy wszystkie FUSE fs będą dostępne przez root. Dla każdego, kto przychodzi w ten sposób, jest to problem z systemem plików kbfs bazy danych, który działa bez zezwolenia na katalog_główny.
Diagon,
Aby rozwinąć z man mount.fuse: sekcja Konfiguracje: „Niektóre opcje dotyczące zasad montowania można ustawić w pliku /etc/fuse.conf.” (jak user_allow_other). Sekcja Ogólne opcje montowania: „allow_other: Ta opcja zastępuje środek bezpieczeństwa ograniczający dostęp do pliku dla użytkownika montującego system plików. Aby wszyscy użytkownicy (w tym root) mogli uzyskać dostęp do plików. Domyślnie ta opcja jest dozwolona tylko do rootowania, ale to ograniczenie może zostać usunięte za pomocą opcji konfiguracji opisanej w poprzedniej sekcji. ”
gatoWololo
1
@WarenP: zasadniczo chcesz to zrobić: 1) echo „user_allow_other”> /etc/fuse.conf 2) Ilekroć uruchamiasz program oparty na bezpiecznikach, dodaj opcję -o allow_other, aby punkt montowania był dostępny dla innych użytkowników . (przykład: sshfs ./mountpoint -o allow_other) - to działa, ponieważ wszystkie programy działające na FUSE dziedziczą opcje wiersza poleceń FUSE (jak allow_other)
felipeek