Sirviendo información sobre Linux desde 1998

Automontaje de unidades en Linux

Autor: Jorginius, LILO
Primera publicación: 2001
Copyright pertenece al autor

El demonio autofs es capaz de montar y desmontar automáticamente sistemas de archivos locales y remotos, liberándonos de hacerlo manualmente mediante la orden mount y umount.

Autofs se comporta de cara al usuario de la siguiente manera:

Existen directorios que están asociados con sistemas de archivos. Cuando el usuario ejecuta una orden que hace referencia al contenido de dicho directorio, autofs montará automágicamente el sistema de archivos correspondiente en ese punto de montaje.

Una vez concluya la operación, espera un tiempo antes de desmontarlo de forma automática.

Autofs es una solución que se compone de una parte que se incluye en el núcleo del sistema (La que se encarga de detectar que estamos entrando en uno de los directorios de automontaje) y de otra en espacio de usuario (un demonio) que se encarga del montaje en sí.

Con esto quiero decir que el kernel debe haber sido compilado con soporte para ello si queremos usarlo. La buena noticia es que autofs es completamente modular y en el caso (improbable) de que nuestro kernel no lo soporte, no tendremos que reconstruirlo entero, sino sólo compilar el autofs como módulo (ahorrando tiempo y un reinicio).

Si tenemos un kernel antiguo (anterior a 2.0.X) o no nos interesa andar recompilando, podemos echar mano a soluciones como amd (automounter daemon), menos eficientes pero que operan solamente en espacio de usuario. Este demonio es obsoleto en Linux, aunque creo que con los BSD hay gente que lo usa aún :-?.

Para comprobar si disponemos de soporte para él incluido en el kernel podemos hacer:

$ cat /proc/filesystems

Esto muestra una lista de los sistemas de archivos soportados por nuestro kernel. Si aparece una línea tal qué:

nodev autofs

Es que nuestro kernel es válido.

Una vez comprobado esto, debemos instalar el demonio. En RedHat y similares, el demonio así como una configuración básica de ejemplo y el script que define el servicio de automontaje se encuentran en el paquete autofs-*.i386.rpm.

Para instalarlo:

# rpm -ivh autofs-*.i386.rpm

Rpm automáticamente añade el servicio al nivel de ejecución actual pero no se arranca aún (y no es deseable que lo hagamos ahora, pues todavía no lo hemos configurado).

Importante: los paquetes de instalación que incluyen las distribuciones son seguros (o deberían serlos), pero si optáis por bajaros versiones actualizadas de Internet, deberías siempre comprobar qué archivos se incluyen, la firma de los paquetes (al menos que el resumen MD5 cuadre con lo esperado) y los scripts que lanzará rpm durante la instalación.

Recordad que cuando instalamos paquetes, lo hacemos como root con todos los peligros que ello implica.

Para chequear la firma (pgp/gpg y MD5):

$ rpm --checksig autofs-*.i386.rpm

Para chequear los scripts de instalación y de desinstalación, en busca de operaciones malignas:

$ rpm -q --scripts autofs-*.i386.rpm

Otras medidas como hacer simulaciones de instalación en entornos chrooted pueden ser excesivas, aunque según dicho popular: "un buen administrador, es el administrador paranoico". Así que allá cada cual con su conciencia :-).

Una vez instalado, pasamos a la configuración. Vamos a suponer, por simplicidad, que el usuario sólo tiene una unidad de discos flexibles y un cdrom. Nos saltaremos unidades zip, jaz, volúmenes nfs, netbios, etc.

El paquete autofs de RedHat, en las versiones que yo manejo, crea un directorio:

/misc

Trae los archivos de configuración:

/etc/auto.master
/etc/auto.misc

Y el servicio de automontaje:

/etc/rc.d/init.d/autofs

Para la configuración que vamos a hacer, el directorio misc< nos sobra, así que:

# rm -r /misc

Editamos /etc/auto.master para dejarlo de esta forma:

# auto.master $Id$
/mnt/auto.floppy /etc/auto.montaje.floppy --timeout 3
/mnt/auto.cdrom /etc/auto.montaje.cdrom --timeout 15
###

El "timeout" es el tiempo en segundos que dejará pasar demonio después de que hayamos terminado de trabajar con el floppy o con el cdrom antes de desmontarlos. Podeis ajustarlo a vuestro gusto si veis que es demasiado grande o pequeño

Los archivos auto.montaje.cdrom y auto.montaje.floppy no existen, así que los crearemos tomando como plantilla los ejemplos que nos muestran en /etc/auto.misc o en la página man de autofs(5):

# auto.montaje.cdrom $Id$
cdrom -fstype=iso9660,user,noexec,ro :/dev/cdrom
### # auto.montaje.floppy $Id$ floppy -fstype=auto,user,noexec,rw,uid=0,gid=19 :/dev/fd0 ###

Las opciones "fstype" son las que serán pasadas a la orden mount por el demonio.

Podemos fijar opciones específicas de ciertos sistemas de archivos (En el ejemplo del floppy uid=0 y gid=19 son propias de los sistemas fat, vfat, msdos, etc) que serán ignoradas de forma transparente si el sistema de archivos es distinto (Si el floppy es ext2, mount no se quejará porque el demonio de automontaje le pase uid y gid).

Esta configuración no es precisamente la más segura del mundo, pero es bastante cómoda. El gid=19 debería corresponder al grupo "floppy", al que deberían pertenecer los usuarios que deseen escribir en los discos flexibles.

En muchos ambientes, permitir montaje de unidades (Y la escritura en ellas el caso el floppy) a los usuarios se considera un problema de seguridad, pero si sólo nosotros tenemos acceso físico a la máquina esto no debería preocuparnos demasiado.

Escritos los archivos de configuración, ahora iremos al directorio /mnt y procederemos de la siguiente forma:

Borramos los directorios cdrom y floppy si existiesen:

# rm -r floppy cdrom

Creamos los directorios auto.cdrom y auto.floppy.

# mkdir auto.floppy auto.cdrom

Creamos dos enlaces blandos, a través de los cuales accederemos a los sistemas de archivos de automontaje:

# ln -s /mnt/auto.cdrom/cdrom /mnt/cdrom
# ln -s /mnt/auto.floppy/floppy /mnt/floppy

Nótese que ni /mnt/auto.cdrom/cdrom ni /mnt/auto.floppy/floppy existen, y no debemos en ningún caso crearlos.

El demonio de automontaje se encargará de construir esos directorios cada vez que necesitemos acceder a un disco y de destruirlos cuando dejemos de utilizarlo.

No deberíamos tocar nada de lo que haya dentro de /mnt/auto.cdrom/ y /mnt/auto.floppy/.

Llegado a este punto, nos queda comentar (añadir un "#" al principio) las líneas correspondientes al floppy y al cdrom en el archivo /etc/fstab y arrancar el servicio para que podamos disfrutar del automontaje:

# /etc/rc.d/init.d/autofs start