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í.
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 en /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 udisks
que te 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.
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.