Desmontar Pendrive sin root desde terminal (como en modo grafico).

Muy buenas a todos.

Estoy haciendo un script que pase unos archivos y haga algunas tareas en ordenadores GNU/Linux, y que tras terminar, me gustaria que desmontase la unidad. Es muy facil, hacer el "clic derecho -> desmontar" pero me gustaria que el mismo script desmontase para ahorrar tiempo. El problema es que para desmontar desde terminal, se necesita ser root (es decir, dar la contraseña maestra) y me gustaria que no la pidiese al igual que ocurre en el modo grafico.

¿Alguien podria ayudarme?

Resumiendo:
  • Conseguir desmontar una unidad extraible (pendrive) desde terminal sin necesidad de logearse como root.

Muchas gracias.
Por ejemplo:

Montar:
mount /media/usb/

Desmontar:
umount /media/usb/
Ya ya, pero la cuestión es por lo del root... :?

laptop:~$ umount /media/disk
umount: /media/disk no está en fstab (y usted no es el usuario root)

Y se me ocurre algun truquito pero...
$ eject /dev/sdb1
umount: /media/disk no está en fstab (y usted no es el usuario root)
eject: el desmontaje de `/media/disk' ha fallado

Se desmontar como root, pero si en modo gráfico no te pide contraseña me gustaria que por terminal tampoco XD

PD: No sabemos la pass de los ordenadores y seria mas laborioso sacar la password de cada ordenador con el John the Ripper que desmontarlo graficamente XD
Si usas kde:
kio_umountwrapper /media/unidad

En gnome ni idea
man fstab
Lo que buscas esta donde "user" :D
O si no quieres tocar el fstab puedes usar el sudo para hacerlo, solo te pedirá una contraseña y tras entrarla te desmontará el usb.
Gracias por las respuestas, pero NO tengo la contraseña del root, en cada maquina es diferente, y me gustaria que lo desmontase automaticamente y sin pass como en modo grafico.

Gracias.
Hmmm en realidad tal como lo monta el sistema automaticamente por HAL, yo diria que esta montado como usuario, y por tanto, tu usuario deberia poder desmontarlo tal cual, pero bueno, sera que lo has probado... ^^

Puedes probar con pmount/pumount, pero es posible que no lo tengas instalado, y sobreentiendo que no puedes instalar...
Jan@work escribió:Hmmm en realidad tal como lo monta el sistema automaticamente por HAL, yo diria que esta montado como usuario, y por tanto, tu usuario deberia poder desmontarlo tal cual, pero bueno, sera que lo has probado... ^^


Hal se ejecuta como un usuario propio durante el arranque, por eso no podemos desmontar con nuestro usuario normal, solo con root.


Para capitanquartz si no te vale el kio_umountwrapper por que usas gnome mira el nautilus-actions que sirve para asignar acciones para tipos de ficheros, como las unidades montadas son ficheros (en linux todo son ficheros), seguramente tendra su acción para desmontar definida ahí, así que lo que tienes que hacer es ver que ejecuta para desmontar y usarlo en tu script
¿Te refieres mirar en el gconf-editor? Creo que ahi no aparecera XD Bueno, yo me estoy bajando el paquete nautilus-actions, que no se si es eso a lo que te refieres ;)
capitanquartz escribió:¿Te refieres mirar en el gconf-editor? Creo que ahi no aparecera XD Bueno, yo me estoy bajando el paquete nautilus-actions, que no se si es eso a lo que te refieres ;)


No es el gconf-editor, es el nautilus-actions, este programa es para editar las acciones del menu contextual (clic derecho del ratón), de esa forma sólo tienes que mirar que acción realiza para desmontar la unidad y copiarla en tu script.

Aunque si te llevas bien con los scripts y archivos de configuración puedes hacerlo a mano, las acciones se guardan en una carpeta llamada "nautilus-scripts", aunque no se la ruta exacta, con un "sudo updatedb && locate nautilus-scripts" deberías encontrarlo rapidamente.
¿Pero te refieres a los scripts de Gnome? Eso aparece en ./.gnome2/nautilus-scripts y por defecto no tiene nada. Me refiero a lo que se produce tras "Equipo -> Click derecho sobre el dispositivo -> Desmontar" ya que no pide pass ;) ¿como hacer lo mismo en terminal?
Creo que con sudo, configurando bien el fichero sudoers, podrás conseguirlo. Lo configuras para que el usuario pueda ejecutar sudo umount sin contraseña y ya.

No sé cómo se hace exáctamente.

http://www.gratisoft.us/sudo/man/sudoers.html#nopasswd_and_passwd
No tengo la pass de los ordenadores! :(

Debe haber un metodo, porque si se puede graficamente sin la pass (¿seria estupido tener que dar la pass cada vez que desmontamos un usb no?) desde terminal tambien se podra. Nautilus ejecuta un comando o linea que le permite hacerlo, lo que necesito es conocer esa linea :(
Por simple deduccion, prueba con gnome-umount.
Si encuentras problemas, mira su man.
¿Como se usaria? Es extraño, pero el programa es como si "no respondiese". Siempre, se haga lo que se haga devuelve por la salida estandar:

gnome-mount 0.6


Haga lo que haga, solo da eso. Haga gnome-mount, gnome-mount npbfvp, sudo gnome-mount /media/disk, o lo que sea.
capitanquartz escribió:¿Como se usaria? Es extraño, pero el programa es como si "no respondiese". Siempre, se haga lo que se haga devuelve por la salida estandar:

gnome-mount 0.6


Haga lo que haga, solo da eso. Haga gnome-mount, gnome-mount npbfvp, sudo gnome-mount /media/disk, o lo que sea.

¿Has leído el man de gnome-mount? Lo explican todo. Prueba con "gnome-mount -u -d /dev/loquesea" y si no furrula mira la manpage.
capitanquartz escribió:¿Pero te refieres a los scripts de Gnome? Eso aparece en ./.gnome2/nautilus-scripts y por defecto no tiene nada. Me refiero a lo que se produce tras "Equipo -> Click derecho sobre el dispositivo -> Desmontar" ya que no pide pass ;) ¿como hacer lo mismo en terminal?


La carpeta que dices es para personalizar el menú contextual de cada usuario por separado, pero a parte debe haber otra con el mismo nombre, seguramente dentro de /usr, en la que se encuentran las acciones por defecto, entre ellas la de Desmontar, el problema es que no uso gnome, si no te lo miraba en un momento...

Pero vamos ya que te han dicho lo de gnome-mount, seguramente sera es comando el que se use en la acción de desmontar.

A ver si tienes suerte y lo solucionas pronto ;)
capitanquartz escribió:¿Como se usaria? Es extraño, pero el programa es como si "no respondiese". Siempre, se haga lo que se haga devuelve por la salida estandar:

gnome-mount 0.6


Haga lo que haga, solo da eso. Haga gnome-mount, gnome-mount npbfvp, sudo gnome-mount /media/disk, o lo que sea.
Lo dicho, mira su man, pero... es gnome-umount para DESmontar XD
prueba con gnome-umount --help :P
En el man pone que gnome-umount no es más que un enlace simbólico a "gnome-mount -u". Tengo que mirar cómo se hacen estos enlaces, me simplificarían algunas cosillas.

Si lo consigues avisa, es interesante.
amuchamu escribió:En el man pone que gnome-umount no es más que un enlace simbólico a "gnome-mount -u". Tengo que mirar cómo se hacen estos enlaces, me simplificarían algunas cosillas.
segun leo, no es un symlink a "gnome-mount -u", sino simplemente a "gnome-mount" (desde cuando los symlinks tienen parametros? :P), y lo que dice el man es que, cuando se invoca como gnome-umount, se asume el -u automaticamente, para lo cual imagino que mira cual era el "argv[0]" (vamos, el nombre del ejecutable con el que se ha ejecutado la cosa XD)
Ah, entiendo, gracias por la explicación :) Ya me parecía raro que fuera un enlace con parámetros, le he estado echando un ojo a gnome-umount y veía un enlace común, y no encontraba nada por ahí.
23 respuestas