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

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

sudo umount /media/the_device

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

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

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

2 ответа

Решение

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

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

gvfs-mount -u /media/the_device

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

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

gio mount --unmount *mounted location*

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

lsblk | grep media
Другие вопросы по тегам