EDIT Sau khi thực hiện thêm một số hoạt động đào, tôi thấy rằng bạn có thể khởi chạy nautilus với quyền root và có quyền truy cập vào các URI đặc biệt bằng cách sử dụng dbus. Lệnh sẽ là
sudo dbus-launch nautilus
Và sau đó các URI đều có sẵn. Thành thật mà nói tôi không 100% tại sao điều này hoạt động nhưng một số thông tin ban đầu tôi tìm thấy dưới đây vẫn có thể hữu ích.
Lý do những URI đó tồn tại là do Nautilus sử dụng một hệ thống tệp ảo có tên là Gnome Virtual File System (gvfs) được xây dựng trên đầu của một hệ thống tệp ảo khác có tên là FUSE. Cụ thể những URI đó được cấu hình trong /usr/lib/gvfs/
thư mục có tên gvfsd- *. Đây là các tệp nhị phân, vì vậy đừng thử và chỉnh sửa chúng.
Khi bạn gắn kết chia sẻ Samba bằng Nautilus, nó sử dụng lệnh gvfsd-mount (được lưu trữ /usr/bin
) để gắn kết chia sẻ mà bạn chỉ định. Chia sẻ sau đó được gắn vào /run/user/<UID>/gvfs/
vị trí id người dùng của bạn (thường là 1000 cho các hệ thống người dùng đơn).
Đối với việc root có thể sử dụng các URI, Ubuntu này và tôi giả sử các bản phân phối khác, hãy cấu hình cầu chì để root không thể sử dụng hệ thống tệp ảo vì lý do bảo mật. Bạn sẽ nhận thấy trong /run/user
thư mục không có thư mục 0 cho người dùng root. Các /etc/fuse.conf
tập tin theo mặc định không được cấu hình để cho phép người dùng truy cập thư mục gốc . Điều này có nghĩa là nếu người dùng của bạn gắn kết một chia sẻ, ngay cả người dùng root cũng không thể xem chia sẻ mà không cấu hình Fuse để cho phép nó.
Tôi chưa thực sự kiểm tra việc cấp quyền truy cập root vào hệ thống tệp Fuse hoặc các URI đặc biệt nhưng bạn có thể may mắn cấu hình nó như được mô tả trong liên kết này hoặc đọc qua trang man Fuse .
Xin lỗi vì câu trả lời RTFM, nhưng tôi không thể tìm thấy giải pháp dứt khoát và nó phụ thuộc vào phiên bản Ubuntu bạn đang sử dụng vì một số thư mục / lệnh đã thay đổi trong các phiên bản gần đây.
x-nautilus-desktop
không được xác định / cấu hình trong/usr/lib/gvfs/
và nơi nào khác có thể được? Tôi sử dụng Ubuntu 13.10, không có tập tin gọigvfsd-x-nautilus-desktop
trong/usr/lib/gvfs/
, nhưng vẫn URI này (x-nautilus-desktop:///
) đang làm việc. Bắt đầu từ điều này, có lẽ tôi có thể tìm ra cách xác định URI mới. Đây là mục tiêu cuối cùng của tôi ...