Зачем мне нужны права суперпользователя для размонтирования диска в командной строке, а не в 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