it-swarm-vi.com

Tại sao tôi cần quyền root để ngắt kết nối ổ đĩa tại dòng lệnh, nhưng không phải trong Nautilus? Làm thế nào để thay đổi điều đó?

Khi tôi chèn một ổ đĩa ngón tay cái, thẻ nhớ hoặc ổ cứng USB, để ngắt kết nối nó thông qua dòng lệnh, tôi cần sử dụng:

Sudo umount /media/the_device

Nhưng, tôi có thể ngắt kết nối thiết bị trong trình quản lý tệp như Nautilus chỉ bằng cách nhấp vào nút nhả hoặc sử dụng menu ngữ cảnh nhấp chuột phải trên thiết bị.

Lý do cho sự khác biệt là gì? Làm cách nào tôi có thể thay đổi nó để tôi có thể ngắt kết nối khỏi dòng lệnh mà không cần quyền root? Là thay đổi nó là một ý tưởng tồi?

Chỉnh sửa: Trong trường hợp nó đã thay đổi, tôi đang chạy 9.04. Tôi đã chạy hầu hết các phiên bản 5.10--9.04 và theo như tôi nhớ, nó luôn như vậy.

22
vanden

Nautilus không ngắt kết nối thiết bị trực tiếp; nó nói chuyện với DBus với một daemon hệ thống (udisks-daemon) và yêu cầu nó ngắt kết nối.

Trình nền kiểm tra xem bạn có được phép làm điều đó không, bằng cách liên hệ với trình nền hệ thống khác, PolicyKit.

PolicyKit sử dụng cấu hình được xác định trong /usr/share/polkit-1/actions/org.freedesktop.udisks.policy (trừ khi quản trị viên hệ thống cục bộ ghi đè lên nó trong /etc/polkit-1). Tệp đó nói với PolicyKit rằng người dùng có phiên giao diện điều khiển hoạt động có thể tách ổ đĩa, do đó, Chính sách nói chuyện với daemon thứ ba, ConsoleKit, để xem bạn có phiên giao diện điều khiển hoạt động không. Đăng nhập thông qua gdm được tính là một phiên giao diện điều khiển; đăng nhập qua ssh không.

Có một công cụ dòng lệnh udisks cho phép bạn ngắt kết nối thiết bị mà không cần sử dụng Sudo, sử dụng cùng một cơ chế:

udisks --unmount /dev/sdb1

mà ngắt kết nối hệ thống tập tin; Tôi cũng có thể tháo toàn bộ thiết bị với

udisks --detach /dev/sdb

điều này làm cho đèn LED trên phím USB của tôi bị tối.

39
Marius Gedminas

Tình hình có thể đã thay đổi - trong Ubuntu 10.04 hiện tại hoạt động mà không có Sudo cho các ổ USB. Nói chung tôi nghĩ rằng lệnh

gvfs-mount -u /media/the_device

(gvfs-mount nằm trong gói gvfs-bin) sẽ luôn hoạt động.

9
Marcel Stimberg

Câu trả lời hiện tại không được chấp nhận. Thử:

gio mount --unmount *mounted location*

lấy các phân vùng được gắn hiện tại với ví dụ:

lsblk | grep media
1
Pablo Bianchi