Tại sao root bị từ chối khi truy cập thư mục FUSE?


24

Tôi sử dụng hệ thống tập tin FUSE không có vấn đề gì với tư cách là người dùng của riêng tôi, nhưng root không thể truy cập vào phần gắn kết FUSE của tôi. Thay vào đó, bất kỳ lệnh nào đưa ra Permission denied. Làm thế nào tôi có thể cho phép root để đọc các mount này?

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

Người dùng của tôi, yonran , có thể đọc nó tốt:

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

Nhưng root không thể đọc thư mục 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

Tôi đang chạy Ubuntu 10.04: Tôi luôn cài đặt bất kỳ bản cập nhật nào từ 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

Chỉnh sửa : loại bỏ hàm ý rằng root được sử dụng để có thể truy cập các mount. Hãy nghĩ về nó, có thể các tập lệnh của tôi không bao giờ cố gắng truy cập vào thư mục là root.

Câu trả lời:


24

Đó là cách fuselàm việc. Nếu bạn muốn cho phép người dùng root hoặc người dùng khác truy cập, bạn phải thêm:

user_allow_other

trong /etc/fuse.conf và gắn hệ thống tập tin cầu chì của bạn với allow_otherhoặc allow_rootdưới dạng tùy chọn.


5
Tôi có phải là người duy nhất đọc nó mà vẫn KHÔNG biết phải làm gì không? allow_other đi vào / etc / fstab? Ở đâu đó khác?
Warren P

Tôi cũng đang nhìn vào điều này. Tôi nghĩ bạn chỉ có thể thêm "allow_root" vào /etc/fuse.conf. Sau đó, tất cả các fUSE của FUSE sẽ được truy cập bằng root. Đối với bất kỳ ai đi theo cách này, đó là một vấn đề đối với hệ thống tệp kbfs của keybase, nó chạy mà không có allow_root.
chéo

Để giải thích chi tiết từ man mount.fuse: Phần cấu hình: "Một số tùy chọn liên quan đến chính sách gắn kết có thể được đặt trong tệp /etc/fuse.conf." (như user_allow_other). Phần Tùy chọn Mount chung: "allow_other: Tùy chọn này ghi đè biện pháp bảo mật hạn chế quyền truy cập tệp vào người dùng gắn hệ thống tệp. Vì vậy, tất cả người dùng (bao gồm cả root) có thể truy cập các tệp. Tùy chọn này theo mặc định chỉ được phép root, nhưng hạn chế này có thể được loại bỏ với một tùy chọn cấu hình được mô tả trong phần trước. "
gatoWololo

1
@WarenP: về cơ bản bạn muốn làm điều này: 1) echo "user_allow_other"> /etc/fuse.conf 2) Bất cứ khi nào bạn chạy chương trình dựa trên cầu chì của mình, hãy thêm tùy chọn -o allow_other, để người dùng khác có thể truy cập được . (ví dụ: sshfs ./mountpoint -o allow_other) - điều này hoạt động vì tất cả các chương trình chạy trên FUSE đều thừa hưởng các tùy chọn dòng lệnh của FUSE (như allow_other)
felipeek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.