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

19

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

sudo umount /media/the_device

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

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

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

    
задан vanden 29.07.2010 в 19:04
источник

2 ответа

35

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-клавиатуре темным.

    
ответ дан Marius Gedminas 30.07.2010 в 14:20
источник
8

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

gvfs-mount -u /media/the_device

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

    
ответ дан Marcel Stimberg 30.07.2010 в 14:31