Зачем мне нужны права суперпользователя для размонтирования диска в командной строке, а не в Nautilus? Как это изменить?

24

Когда я вставляю флэш-накопитель, карту памяти или жесткий диск USB, чтобы отключить его через командную строку, мне нужно использовать:

sudo umount /media/the_device

Но я могу размонтировать устройство в файловом менеджере, таком как Nautilus, просто нажав кнопку извлечения или используя контекстное меню правой кнопкой мыши на устройстве.

В чем причина разницы? Как я могу изменить это так, чтобы я мог размонтировать из командной строки, не нуждаясь в привилегиях суперпользователя? Это плохая идея?

Изменить: В случае, если он изменился, я работаю 9.04. Я запускал большинство версий 5.10-9.04, и, насколько я помню, так было всегда.

Вэнден
источник
2
Да, я не думал об этом. Это странно, не правда ли?
DLH
Да, и тогда есть загадочные горы. Я долго пытался понять, как nautilus находит и монтирует локальную сеть Windows, на которой работают компьютеры в доме. Я могу получить доступ к общим папкам в любом месте через nautilus, но было бы очень интересно узнать, как туда добраться из терминала.
Кампадреналин
Любые сетевые диски в Nautilus могут быть доступны в ~ / .gvfs. Также я рекомендую nautilus-open-terminalплагин.
Мариус Гедминас

Ответы:

40

Наутилус не размонтирует устройство напрямую; он взаимодействует через 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-ключе темным.

Мариус Гедминас
источник
3
Я хочу поблагодарить вас за провокацию в этом исследовании. Я хотел, чтобы инструмент командной строки размонтировал устройства без использования sudo в течение длительного времени.
Мариус Гедминас
1
Хм, добро пожаловать за то, что я провоцирую вас дать действительно хороший ответ на мой вопрос. :-)
Ванден
1
Права на это больше не присутствуют (по состоянию на Ubuntu 12.10) - однако ответ ниже с gvfs-mountтеперь работает
Дэвид Фрейзер
9

Ситуация могла измениться - в текущей версии Ubuntu 10.04 umount работает без sudo для USB-накопителей. Вообще я думаю, что команда

gvfs-mount -u /media/the_device

(gvfs-mount находится в пакете gvfs-bin) всегда должен работать.

Марсель Стимберг
источник
2

Текущие ответы устарели. Пытаться:

gio mount --unmount *mounted location*

получить текущие смонтированные разделы, например:

lsblk | grep media
Пабло А
источник