¿Por qué necesito privilegios de root para desmontar una unidad en la línea de comandos, pero no en Nautilus? ¿Cómo cambiar eso?

24

Cuando inserto una memoria USB, una tarjeta de memoria o un disco duro USB, para desmontarla a través de la línea de comando, necesito usar:

sudo umount /media/the_device

Pero, puedo desmontar el dispositivo en un administrador de archivos como Nautilus simplemente haciendo clic en el botón de expulsión o usando el menú contextual del botón derecho en el dispositivo.

¿Cuál es la razón de la diferencia? ¿Cómo puedo cambiarlo para poder desmontar desde la línea de comandos sin necesidad de privilegios de root? ¿Cambiarlo es una mala idea?

Editar: en caso de que haya cambiado, estoy ejecutando 9.04. He ejecutado la mayoría de las versiones 5.10--9.04, y hasta donde recuerdo, siempre ha sido así.

Vanden
fuente
2
Huh, no había pensado en eso. Eso es extraño, ¿no?
DLH
Sí, y luego están las monturas misteriosas. He intentado durante mucho tiempo descubrir cómo nautilus ubica y monta la red local de Windows en la que se ejecutan las computadoras de la casa. Puedo llegar a las carpetas compartidas de cualquier lugar a través de nautilus, pero sería realmente ingenioso saber cómo llegar desde una terminal.
Campadrenalin
Se puede acceder a cualquier unidad de red en Nautilus en ~ / .gvfs. Además, recomiendo el nautilus-open-terminalcomplemento.
Marius Gedminas

Respuestas:

40

Nautilus no desmonta el dispositivo directamente; habla sobre DBus con un demonio del sistema (udisks-daemon) y le pide que desmonte.

El demonio verifica si se le permite hacer eso, contactando a otro demonio del sistema, PolicyKit.

PolicyKit usa la configuración definida en /usr/share/polkit-1/actions/org.freedesktop.udisks.policy(a menos que el administrador del sistema local la anule /etc/polkit-1). Ese archivo le dice a PolicyKit que los usuarios con sesiones de consola activas pueden desconectar unidades, por lo que PolicyKit habla con un tercer demonio, ConsoleKit, para ver si tiene sesiones de consola activas. Iniciar sesión a través de gdm cuenta como una sesión de consola; iniciar sesión a través de ssh no lo hace.

Hay una herramienta de línea de comandos udisksque le permite desmontar dispositivos sin usar sudo, usando el mismo mecanismo:

udisks --unmount /dev/sdb1

que desmonta el sistema de archivos; También puedo desconectar todo el dispositivo con

udisks --detach /dev/sdb

lo que hace que el LED de mi llave USB se apague.

Marius Gedminas
fuente
3
Quiero agradecerles mucho por provocarme a hacer esta investigación. Quería una herramienta de línea de comandos para desmontar dispositivos sin usar sudo durante mucho tiempo.
Marius Gedminas
1
Um, de nada por haberte provocado a dar una buena respuesta a mi pregunta. :-)
vanden
1
Los derechos para hacer esto ya no están presentes (a partir de Ubuntu 12.10); sin embargo, la respuesta a continuación gvfs-mountahora funciona
David Fraser,
9

La situación podría haber cambiado: en Ubuntu 10.04 actual umount funciona sin sudo para unidades USB. Generalmente creo que el comando

gvfs-mount -u /media/the_device

(gvfs-mount está en el paquete gvfs-bin) siempre debería funcionar.

Marcel Stimberg
fuente
2

Las respuestas actuales están en desuso. Tratar:

gio mount --unmount *mounted location*

obtener las particiones montadas actuales con, por ejemplo:

lsblk | grep media
Pablo A
fuente