Autofs – Montaje Automático de filesystems en Linux

¿Qué es Autofs?

AutoFS es un tipo de sistema de archivos para Linux que se implementa en el espacio del kernel.

Su configuración predeterminada es que el sistema de archivos se monta tan pronto como un cliente lo solicite. Del mismo modo, cuando no hay solicitudes de clientes, AutoFS desmonta el sistema de archivos.

Es frecuente utilizar AutoFS para el montaje automático de filesystems de perfiles de usuarios centralizados con LDAP (/home), el montaje de un filesystem NFS o una imagen ISO, por ejemplo.

Para poder utilizar autofs, es necesario que tengamos instalado el software correspondiente. En RedHat 8, sería el siguiente RPM:

[root@server1 ~]# rpm -qa |grep -i autofs
autofs-5.1.4-48.el8.x86_64
libsss_autofs-2.4.0-9.el8_4.1.x86_64
[root@server1 ~]# 

Configuración de autofs (o automount)

La instalación por defecto crea una serie de ficheros de configuración en /etc, tal y como podemos ver a continuación:

Ficheros de autofs

En el fichero auto.misc tenemos varios ejemplos de configuración de filesystems que podemos utilizar para añadir nuevos filesystems personalizados. Veamos cómo funciona:

[root@server1 etc]# cat auto.misc
#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage

cd		-fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom

# the following entries are samples to pique your imagination
#linux		-ro,soft,intr		ftp.example.org:/pub/linux
#boot		-fstype=ext2		:/dev/hda1
#floppy		-fstype=auto		:/dev/fd0
#floppy		-fstype=ext2		:/dev/fd0
#e2floppy	-fstype=ext2		:/dev/fd0
#jaz		-fstype=ext2		:/dev/sdc1
#removable	-fstype=ext2		:/dev/hdd

Tal y como comentaba antes, tenemos varias plantillas de configuración para diferentes tipos de filesystems. Si quisiéramos añadir un filesystem nuevo, lo haríamos al final de este fichero.

Por ejemplo, vamos a añadir la siguiente línea y veamos lo que ocurre:

[root@server1 etc]# tail -1 auto.misc
nfsclient	-ro,soft,intr		192.168.248.137:/nfssrv
[root@server1 etc]# 

Ahora voy a escribir un fichero en el servidor de NFS y voy a ver cómo lo veo en el cliente de NFS (directorio «nfsclient») cuando entro en él:

[root@server1 ~]# systemctl start autofs
[root@server1 ~]# cd /misc/nfsclient
[root@server1 nfsclient]# ls -la
total 0
drwxr-xr-x 2 root root 6 Jul 25 23:25 .
drwxr-xr-x 3 root root 0 Jul 25 23:36 ..
[root@server1 nfsclient]# df -hP .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G  8.7G  9.1G  49% /misc/nfsclient
[root@server1 nfsclient]# touch /nfssrv/test
[root@server1 nfsclient]# ls -la
total 0
drwxr-xr-x 2 root root 18 Jul 25 23:36 .
drwxr-xr-x 3 root root  0 Jul 25 23:36 ..
-rw-r--r-- 1 root root  0 Jul 25 23:36 test
[root@server1 nfsclient]# 

Cuando he ejecutado el comando «cd /misc/nfsclient» este FS se ha montado automáticamente. Os lo demostraré:

  • Paro el servicio autofs:
[root@server1 ~]# systemctl stop autofs
[root@server1 ~]# cd /misc
-bash: cd: /misc: No such file or directory
[root@server1 ~]#

Al pararlo, el directorio /misc se desmonta y elimina automáticamente, tal y como podemos observar.

  • Vuelvo a arrancar el servicio autofs:
[root@server1 ~]# systemctl start autofs
[root@server1 ~]# cd /misc/
[root@server1 misc]# ls -la
total 4
drwxr-xr-x   2 root root    0 Jul 25 23:40 .
dr-xr-xr-x. 23 root root 4096 Jul 25 23:40 ..
[root@server1 misc]# cd nfsclient
[root@server1 nfsclient]# ls -la
total 0
drwxr-xr-x 2 root root 18 Jul 25 23:36 .
drwxr-xr-x 3 root root  0 Jul 25 23:41 ..
-rw-r--r-- 1 root root  0 Jul 25 23:36 test
[root@server1 nfsclient]# 

¿Os habéis fijado en que el directorio «nfsclient» no existía hasta que he ejecutado «cd nfsclient»? Esto ha sido porque autofs lo ha montado automáticamente.

¿Y si no quiero montar mis directorios debajo de /misc?

Para personalizar el path de montaje, utilizaremos otro fichero de configuración distinto:

  • Editamos el fichero auto.master y añadimos la siguiente línea:
[root@server1 etc]# tail -1 auto.master
/- /etc/auto.mount
[root@server1 etc]# 
  • A continuación, editamos el fichero auto.mount personalizando el path que nos interesa:
[root@server1 etc]# cat auto.mount
/nfsclient       -ro,soft,intr           192.168.248.137:/nfssrv
[root@server1 etc]# 

Ahora vamos a probar si el fichero auto.mount funciona correctamente:

[root@server1 ~]# systemctl reload autofs
[root@server1 ~]# cd /nfsclient/
[root@server1 nfsclient]# ls -la
total 4
drwxr-xr-x   2 root root   18 Jul 25 23:36 .
dr-xr-xr-x. 23 root root 4096 Jul 25 23:40 ..
-rw-r--r--   1 root root    0 Jul 25 23:36 test
[root@server1 nfsclient]#

Montaje de un filesystem Samba con usuario y contraseña con autofs

En este caso, utilizaremos el fichero auto.cifs con la siguiente sintaxis:

/samba -fstype=cifs,rw,username=usuario,password=contraseña ://servidor_samba/recurso

Más ejemplos de ayuda de Autofs

Si ejecutamos el comando man autofs y vamos al final de la página, nos encontraremos con la sección «SEE ALSO» o «ver también» y veremos autofs(5).

Otros comandos de ayuda de autofs con man

autofs(5) nos está indicando que revisemos la página 5 del man de autofs. Es decir, si ejecutamos el comando man 5 autofs obtendremos más ayuda sobre el funcionamiento de autofs. En esta ayuda, veremos más ejemplos de uso:

Ejemplos de configuracion de automount con la ayuda de man 5 autofs

Te puede interesar

Montaje de filesystems con Samba

COMPÁRTEME

2 comentarios en «Autofs – Montaje Automático de filesystems en Linux»

  1. Hola,
    entonces se podrían automontar los fs de los usuarios compartidos desde un nfs server?

    Osea, que el home de los usuarios existieran únicamente en un nfs server y que se automontaran automáticamente?

    gracias 😛

    Responder

Deja un comentario