Tại sao không thể tìm thấy đọc / chạy / người dùng / 1000 / gvfs mặc dù nó đang chạy bằng root?


34

Ai đó có thể cho tôi biết những gì tôi đang làm sai, đây là gì hoặc làm thế nào để khắc phục nó? Tôi đang chạy Fedora 18 và nhận được lỗi hiển thị

[root@servername /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[root@servername /]# 
[root@thinktank /]# pwd
/
[root@thinktank /]# ls -ltr ./run/user/1000
ls: cannot access ./run/user/1000/gvfs: Permission denied
total 0
d?????????? ? ?    ?      ?            ? gvfs
lrwxrwxrwx. 1 root root  17 May 28 12:30 X11-display -> /tmp/.X11-unix/X0
drwx------. 2 kal  kal  120 May 28 12:30 keyring-QjDw4b
drwx------. 2 kal  kal   40 May 28 12:30 gvfs-burn
drwx------. 2 kal  kal   60 May 28 12:30 krb5cc_5f0bcaf94f916d6b61696e2251a4dbb3
drwx------. 2 kal  kal   60 May 28 18:25 dconf

Bạn không làm gì sai và đề nghị của tôi chỉ đơn giản là bỏ qua lỗi. Nếu điều đó không được chấp nhận, làm thế nào về việc loại trừ điểm gắn GVFS trên finddòng lệnh?
tripleee

Câu trả lời:


33

Bạn không làm gì sai cả, và không có gì để sửa. /run/user/$uid/gvfshoặc ~$user/.gvfslà điểm gắn kết cho giao diện FUSE với GVFS . GVFS là một triển khai hệ thống tệp ảo cho Gnome, cho phép các ứng dụng Gnome truy cập các tài nguyên như máy chủ FTP hoặc Samba hoặc nội dung của các tệp zip như thư mục cục bộ. FUSE là một cách để thực hiện trình điều khiển hệ thống tập tin dưới dạng mã người dùng (thay vì mã hạt nhân). Cổng GVFS-FUSE giúp trình điều khiển hệ thống tệp GVFS có thể truy cập được đối với tất cả các ứng dụng, không chỉ các ứng dụng sử dụng thư viện Gnome.

Việc quản lý ranh giới tin cậy với các hệ thống tập tin FUSE là khó khăn, bởi vì trình điều khiển hệ thống tập tin đang chạy như một người dùng không có quyền, trái ngược với mã hạt nhân cho các hệ thống tập tin truyền thống. Để tránh các sự phức tạp, theo mặc định, hệ thống tập tin FUSE chỉ có thể truy cập đối với người dùng đang chạy quá trình trình điều khiển. Ngay cả root cũng không được bỏ qua hạn chế này.

Nếu bạn đang tìm kiếm một tệp trên các hệ thống tệp cục bộ, hãy chuyển -xdevđến find. Nếu bạn muốn duyệt qua nhiều hệ thống tập tin cục bộ, hãy liệt kê tất cả chúng.

find  / /home -xdev -name ngirc

Nếu tệp đã có mặt từ hôm qua, bạn có thể thử locate ngircthay thế ( locatetìm kiếm thông qua cơ sở dữ liệu tên tệp thường được cập nhật hàng đêm).

Nếu bạn muốn đi qua các điểm gắn kết GVFS, bạn sẽ phải làm như vậy với tư cách là người dùng phù hợp.

find / -name ngirc -path '/run/user/*/gvfs' -prune -o -path '/home/*/.gvfs' -prune -o -name ngirc -print
for d in /run/user/*; do su "${d##*/}" -c "find $d -name ngirc -print"; done

Cảm ơn lời giải thích tuyệt vời về GVFS và FUSE. Tôi đã thử chạy 'find' như trong ví dụ của bạn và nó hoạt động rất tốt.
kal

Làm thế nào để FUSE ngăn chặn root truy cập các tập tin? Chắc chắn root có khả năng vô hiệu hóa các biện pháp bảo vệ như vậy.
Akinos

1
@Nat Root có thể thay đổi quy trình của nó thành uid mục tiêu, vì vậy theo nghĩa bảo mật, bỏ qua việc bảo vệ là chuyện nhỏ. Nhưng chức năng kiểm soát truy cập trong kernel từ chối quyền truy cập vào root. Hiện tượng này cũng xảy ra với các hệ thống tệp khác, ví dụ: root không thể truy cập các thư mục riêng trên NFS mà không chuyển sang UID của chủ sở hữu.
Gilles 'SO- ngừng trở nên xấu xa'

2
để "tránh các biến chứng" ... Chà, nó chắc chắn đã tạo ra một sự phức tạp lớn vì tôi không thể sử dụng lệnh mount để ánh xạ đường dẫn chia sẻ đến tên thư mục sạch hơn .. Truy cập bị từ chối vào root khi sử dụng sudo mount.
Nuzzolilo

@Nuzzolilo Tôi không biết bạn đang nói về cái gì. Nếu bạn gặp vấn đề, hãy hỏi một câu hỏi mới và chắc chắn giải thích kịch bản của bạn.
Gilles 'SO- ngừng trở nên xấu xa'

10

Đó là một vấn đề cầu chì . Không có người dùng ngoại trừ chủ sở hữu có thể đọc. Để làm việc xung quanh cấu hình mặc định, hãy thử bật tùy chọn user_allow_other. Tùy chọn này được chỉ định bằng cách thêm nó vào /etc/fuse.conf. Nó không có giá trị, chỉ cần xác định tùy chọn trên một dòng trống.


Cảm ơn. Tôi thực sự không hiểu cầu chì là gì, nhưng sau khi đọc một chút từ báo cáo lỗi trong bình luận của bạn và bình luận của don_crissti's, tôi đoán điều này có liên quan đến ổ cứng USB mà tôi đã cắm hoặc máy chủ samba của tôi? Có bất kỳ vấn đề bảo mật nào mà tôi nên xem xét khi bật "user_allow_other" và có bất kỳ tùy chọn nào khác để gắn mà tôi nên xem xét không? Cảm ơn.
kal

1
Cảm ơn, nhưng đây không thực sự là một giải pháp cho tôi nếu không ai khác có thể sử dụng hệ thống. Làm thế nào tôi có thể nói ai là chủ sở hữu? Tôi đã cố gắng ngắt kết nối / ngắt kết nối ổ cứng ngoài và tắt máy chủ samba của tôi. Tất cả những gì tôi thực sự muốn làm là có thể tìm kiếm toàn bộ hệ thống tệp cho một tệp mà không ảnh hưởng đến bảo mật. Có một giải pháp thay thế cho FUSE và có cách nào để nói chính xác nó được sử dụng để làm gì không? Cảm ơn.
kal

Askubfox.com/questions/715637/ Tấn Tôi đã thử đề xuất của @Christopher nhưng các tùy chọn dòng lệnh không được tôn trọng. Tôi nghi ngờ rằng trình khởi chạy tự động daemon được cấu hình theo một cách nhất định nhưng tôi không thể tìm thấy tài liệu cấu hình để làm như vậy
Nuzzolilo

3

Nếu bạn nhận được sự cho phép và các chi tiết khác cho gvfs theo như sau

d?????????? ? ?    ?      ?            ? gvfs

sau đó chỉ cần ngắt kết nối gvfs của bạn bằng lệnh sau. Vấn đề của bạn sẽ được giải quyết sau khi làm theo quy trình này.

umount ~/gvfs(umount /run/user/112/gvfs in my case).

GVFS (Hệ thống tệp ảo Gnome) là hệ thống tệp ảo cho máy tính để bàn Gnome, cho phép người dùng dễ dàng truy cập dữ liệu từ xa thông qua SFTP, FTP, WebDAV, SMB và dữ liệu cục bộ thông qua tích hợp udev để bạn không cần phải lo lắng khi ngắt kết nối này .


3

Đây là một chủ đề cũ nhưng trong các báo cáo lỗi gnome, đây là một vấn đề mở gần đây vì vậy có thể một số người sử dụng hàng giờ để tìm giải pháp khắc phục sự cố gvfs-fuser - mà tất cả dường như có liên quan chặt chẽ.

Lỗi Msg từ meld:

Error copying '/media/root/5FDA03906F33F217/SAVE/rsyncTEST-usb/allusers' to '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'

[Errno 95] Operation not supported: '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'.

Tôi gặp phải vấn đề gvfs-fuser khi cố gắng sử dụng meld / diff / kdiff trên ftp. Có vẻ như vấn đề là giữa fuser và gvfs. Sự cố dường như không xảy ra trong 3.15.1 nhưng bắt đầu được báo cáo trong 3.15.2.

Câu trả lời của Christopher xác định vấn đề và cung cấp giải pháp.

Một giải pháp khả thi khác là sử dụng sshfs (xem bình luận nàychủ đề này ). Để biết thêm thông tin về gvfs-commands, hãy xem sự khác biệt giữa các lệnh gvfs và các lệnh phổ biến như cat, ls, cp là gì?

Các lỗi có thể liên quan đến bao gồm Gnome # 317875Gnome # 768281 .

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.