Mengapa root mendapatkan Izin ditolak ketika mengakses direktori FUSE?

24

Saya menggunakan sistem file FUSE tanpa masalah sebagai pengguna saya sendiri, tetapi root tidak dapat mengakses mount FUSE saya. Sebaliknya, perintah apa pun memberi Permission denied. Bagaimana saya bisa memberi root izin untuk membaca tunggangan ini?

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

Pengguna saya, yonran , dapat membacanya dengan baik:

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

Tetapi root tidak bisa membaca direktori 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

Saya menjalankan Ubuntu 10.04: Saya selalu menginstal pembaruan dari 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

Sunting : menghapus implikasi yang digunakan root untuk dapat mengakses mount. Kalau dipikir-pikir, mungkin skrip saya tidak pernah mencoba mengakses direktori sebagai root.

yonran
sumber

Jawaban:

24

Begitulah cara fusekerjanya. Jika Anda ingin mengizinkan akses ke root atau pengguna lain, Anda harus menambahkan:

user_allow_other

di /etc/fuse.conf dan pasang sistem file sekering Anda dengan allow_otheratau allow_rootsebagai opsi.

tuxce
sumber
5
Apakah saya satu-satunya yang membaca itu dan masih TIDAK tahu harus melakukan apa? allow_other masuk ke / etc / fstab? Di tempat lain?
Warren P
Saya melihat ini juga, sekarang. Saya pikir Anda bisa menambahkan "allow_root" ke /etc/fuse.conf Anda. Maka semua FUSE fs akan dapat diakses oleh root. Bagi siapa saja yang datang dengan cara ini, ini merupakan masalah untuk filesystem kbfs keybase, yang berjalan tanpa allow_root.
Diagon
Untuk menguraikan dari man mount.fuse: Bagian konfigurasi: "Beberapa opsi mengenai kebijakan mount dapat diatur dalam file /etc/fuse.conf." (seperti user_allow_other). Bagian General Mount Options: "allow_other: Opsi ini mengesampingkan ukuran keamanan yang membatasi akses file ke pengguna yang memasang sistem file. Jadi semua pengguna (termasuk root) dapat mengakses file. Opsi ini secara default hanya diizinkan untuk melakukan root, tetapi pembatasan ini dapat dihapus dengan opsi konfigurasi yang dijelaskan di bagian sebelumnya. "
gatoWololo
1
@WarenP: pada dasarnya Anda ingin melakukan ini: 1) echo "user_allow_other"> /etc/fuse.conf 2) Setiap kali Anda menjalankan program berbasis fuse Anda, tambahkan opsi -o allow_other, sehingga mountpoint akan dapat diakses oleh pengguna lain . (contoh: sshfs ./mountpoint -o allow_other) - ini berfungsi karena semua program yang berjalan di FUSE mewarisi opsi baris perintah FUSE (seperti allow_other)
felipeek