當前位置: 首頁>>技術教程>>正文


為什麽我需要 root 權限才能在命令行中卸載驅動器,而不是在 Nautilus 中?如何改變它?

, ,

問題描述

當我插入拇指驅動器、媒體卡或 USB 硬盤驅動器時,通過命令行卸載它,我需要使用:

sudo umount /media/the_device

但是,我可以通過單擊彈出按鈕或使用設備上的右鍵單擊上下文菜單在 Nautilus 等文件管理器中卸載設備。

造成這種差異的原因是什麽?如何更改它以便我可以從命令行卸載而不需要 root 權限?改變它是一個壞主意嗎?

編輯:如果它發生了變化,我正在運行 9.04。我運行過大多數版本 5.10–9.04,據我回憶,一直都是這樣。

最佳方法

Nautilus 不會直接卸載設備;它通過 DBus 與係統守護進程 (udisks-daemon) 對話並要求它卸載。

守護程序通過聯係另一個係統守護程序 PolicyKit 來檢查您是否被允許這樣做。

PolicyKit 使用 /usr/share/polkit-1/actions/org.freedesktop.udisks.policy 中定義的配置(除非本地係統管理員在 /etc/polkit-1 中覆蓋它)。該文件告訴 PolicyKit 具有活動控製台會話的用戶可以分離驅動器,因此 PolicyKit 與第三個守護程序 ConsoleKit 對話,以查看您是否有活動的控製台會話。通過 gdm 登錄算作控製台會話;通過 ssh 登錄不會。

有一個 命令行 工具 udisks 可讓您在不使用 sudo 的情況下卸載設備,使用相同的機製:

udisks --unmount /dev/sdb1

卸載文件係統;我也可以用

udisks --detach /dev/sdb

這使我的 USB 密鑰上的 LED 變暗。

次佳方法

情況可能已經改變——在當前的 Ubuntu 10.04 中,umount 可以在沒有 sudo 的 USB 驅動器的情況下工作。一般來說,我認為命令

gvfs-mount -u /media/the_device

(gvfs-mount 在 gvfs-bin 包中)應該始終有效。

第三種方法

當前的答案已被棄用。嘗試:

gio mount --unmount *mounted location*

獲取當前安裝的分區,例如:

lsblk | grep media

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12802.html,未經允許,請勿轉載。