sábado, 13 de agosto de 2011

Como montar disquettes en Gnu/Linux

Solucionando problema de montaje
Para poder montar los dikettes, lo que hice fue crear un script que los (des)monte a simple golpe de mouse. Y en el camino, encontré un problema con el fstab; paso a comentarles...
1- Editar /etc/fstab y comentar la línea correspondiente al montaje de la disketera, tal de desactivarla (ponerle un # al inicio de la línea o elminarla).
Esta línea tiene un error, que por defecto uno de los parámetros fija al sistema de archivos con utf8, cosa que los diskettes formateados de DOS/Win no son compatibles. Aún eliminando este parámetro, no hay forma de que se logre montar los diskettes con fstab, por lo que no queda otra más que desactivar dicha línea.

2- Editar /etc/sudoers si el usuario que montara diskettes no es administrador:
sudo visudo
Agregar al final del archivo:
usuario ALL=NOPASSWD: /bin/mount -t vfat /dev/fd0 /media/floppy0,/bin/umount /media/floppy0
Si se desea agregar un grupo de usuarios, entonces en lugar de usuario colocar %grupo
Esto es para que el script no le pida clave al usuario. No le quita ni debilita significativamente la protección del sistema, dado que el usario solo podrá ejecutar como root esa instrucción exacta y tal cual, por lo que es bastante seguro. Si no se hace este paso, entonces se le deben dar permisos al usuario para que ejecute sudo, lo que me parece terrible. Se puede quitar la opción NOPASSWD, y entonces le pedirá clave, pero no es recomendable si el usuario recién sale de Windows...

3- Crear el siguiente script en un lugar que el usuario tenga acceso, como ser su carpeta home, y darle permiso de ejecución:

#!/bin/sh

# by HacKan 2010
# http://www.hackan.com.ar
# Ejecuta accion de montado y desmontado del diskette
# sin requerir accion del usuario
# Nota: el usuario debe poder ejecutar sudo /bin/mount ...
# y /bin/umount ...
# editar /etc/sudoers con visudo para esto

# Chequea si el diskette esta desmontado
volume="/media/floppy0" # Si se cambia esta opción, recordar editar /etc/sudoers acorde
if mount | grep "on ${volume} type" > /dev/null
then
# Esta montado el diskette; desmontarlo
sudo umount ${volume}
notify-send -i /usr/share/icons/Humanity/devices/48/3floppy_unmount.svg "Ya puede retirar el diskette"
else
# No hay diskette montado, pero tampoco
# se si hay diskette en diskettera
sudo mount -t msdos -o umask=000 /dev/fd0 ${volume}
if [ $? -eq 0 ]; then
notify-send -i /usr/share/icons/Humanity/devices/48/3floppy_unmount.svg "El diskette está listo para ser usado"
else
notify-send -i /usr/share/icons/Humanity/devices/48/3floppy_unmount.svg "No hay ningún diskette en la diskettera"
fi
fi
exit 0

En un entorno multiusuario, podrían crear el script en /usr/bin para que todos tengan acceso al mismo. Reitero: recuerden hacerlo ejecutable: chmod +x /ruta/al/script

4- Crear un lanzador para que ejecute al script. El usuario deberá ejecutar el script cada vez que inserte o remueva un diskette (no se puede automatizar porque no hay autodetección de diskettes), por lo que conviene que simplemente de doble click a un 'acceso directo'. El lanzador lo crean en el escritorio o en la barra de panel, click derecho > crear lanzador.
Para lanzar el script, donde dice comando: sh /ruta/al/script
Se puede usar el sig. ícono: /usr/share/icons/Humanity/devices/48/3floppy_unmount.svg
O el que quieran, claro


Fuente: http://www.taringa.net/posts/linux/7862464/Ubuntu_-los-diskettes-y-VirtualBox.html

0 comentarios:

Publicar un comentario

Dejanos tu comentario

 
Web Analytics