LDAP (parte 10): Perfiles móviles de usuario usando NFS y LDAP

Publicado por P. Ruiz en

Una de las ventajas que aporta LDAP cuando lo combinamos con NFS es que podemos guardar el perfil de una cuenta de usuario en el servidor NFS. De este modo, cuando un usuario se autentica en cualquier equipo de la red usando su cuenta LDAP, podrá acceder de forma automática a una carpeta compartida donde se guardan los perfiles de las cuentas.

Esta es la solución que implementaremos en el artículo de hoy, pero como el proceso es un poco largo, a continuación te describo los pasos que vamos a seguir:

  1. Crear una carpeta en el servidor para guardar la carpeta /home de los usuarios móviles (el equivalente a /home/usuario de cada usuario, pero en el servidor). En este ejemplo, en lugar de la carpeta /home crearemos una específicamente para perfiles móviles a la que llamaremos /moviles.

  2. Modificar el archivo /etc/exports para compartir el directorio anterior con permisos de lectura/escritura para todos los usuarios.

  3. Modificar las cuentas de usuario LDAP para indicar que la carpeta donde deben tener su perfil se encuentra dentro de la carpeta que crearemos en el paso 4.

  4. Crear una carpeta en los equipos cliente para montar los perfiles móviles (el equivalente a /home/usuario de cada usuario en cada cliente). Para este ejemplo, la carpeta de los clientes también se llamará /moviles, aunque no es necesario que su nombre coincida con el de la carpeta que crearemos para el punto 1.

  5. Modificar el archivo /etc/fstab de cada cliente para que monte la carpeta que hemos creado en el paso 1 en el punto de montaje establecido en el paso 4 y reiniciar el equipo.

Bueno, pues ahora que ya tenemos claro nuestro objetivo, comencemos…

Crear una carpeta para guardar los perfiles móviles en el servidor

En realidad, ya hemos visto cómo hacer esta tarea dentro del artículo NFS (parte 4): Compartir almacenamiento en un servidor Ubuntu 20.04 LTS. Por lo tanto, sólo tenemos que seguir las indicaciones del punto Crear las carpetas a compartir y crear una nueva carpeta. Aquí, crearemos una nueva carpeta llamada /moviles:

sudo mkdir /moviles
sudo chown nobody:nogroup /moviles

Creamos la carpeta y cambiamos su propietario y grupo

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-001

Exportar el contenido de la carpeta que tendrá los perfiles móviles

Ahora tenemos que lograr que NFS comparta la carpeta con todos los usuarios de la red. De nuevo, puedes obtener más detalles en el artículo NFS (parte 4): Compartir almacenamiento en un servidor Ubuntu 20.04 LTS, concretamente en el apartado Exportar el contenido de las carpetas. Como podrás recordar, la idea básica consiste en editar el archivo /etc/exports y crear una línea como esta:

/moviles        *(rw,sync,no_root_squash,no_subtree_check)

Para lograrlo, usaremos el editor nano con privilegios administrativos:

sudo nano /etc/exports

Escribimos la orden y pulsamos la tecla Intro.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-002

Cuando se muestre el contenido del archivo, nos desplazamos hasta el final y copiamos la línea anterior.

Una vez completada la tarea, pulsamos la combinación de teclas Ctrl + X para salir, y nos aseguramos de guardar los cambios.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-003

Siempre que hagamos cambios en el archivo /etc/exports, debemos recordar la necesidad de reiniciar el servicio NFS para que sean aplicados. Para lograrlo, sólo tienes que escribir la siguiente orden:

sudo /etc/init.d/nfs-kernel-server restart

Ejecutamos la orden y comprobamos que se ha producido el reinicio.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-004

Modificar la carpeta de perfil para el usuario LDAP

Lo siguiente será modificar la propiedad homeDirectory de las cuentas de usuario que deban tener un perfil de usuario móvil. En nuestro caso, usaremos la cuenta lgomez, que ya usamos en otros artículos de esta serie. En realidad, ya hemos visto cómo hacer esta tarea dentro del artículo LDAP (parte4): Buscar, modificar y eliminar elementos del directorio, concretamente en el apartado Modificar entradas del directorio.

Como podrás recordar, la idea básica consiste en crear un archivo LDIF que especifique los cambios que necesitamos realizar. En nuestro caso, el archivo se llamará cambios.ldif y tendrá el siguiente aspecto:

dn: uid=lgomez,ou=unidad,dc=somebooks,dc=local
changetype: modify
replace: homeDirectory
homeDirectory: /moviles/lgomez

Para crearlo, volveremos a utilizar el editor nano con privilegios administrativos:

sudo nano cambios.ldif

Escribimos la orden y pulsamos la tecla Intro.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-005

Cuando nos encontremos en el área de trabajo del editor, copiamos las líneas del ejemplo anterior.

Y, una vez completada la tarea, volvemos a pulsar la combinación de teclas Ctrl + X para salir, y nos aseguramos de guardar los cambios.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-006

Por último, ejecutamos la utilidad ldapmodify, indicándole el nombre del archivo donde se encuentran los cambios:

ldapmodify -x -D cn=admin,dc=somebooks,dc=local -W -f cambios.ldif

Como de costumbre, necesitaremos escribir la contraseña de administración de LDAP.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-007

Al hacerlo, el comando nos responde con los datos de la entrada que ha sido modificada.

Comprobamos que, efectivamente, la respuesta se corresponde con la cuenta indicada en el archivo LDIF.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-008

Incluso podemos utilizar el comando slapcat para comprobar el contenido del directorio:

sudo slapcat

Escribimos la orden y pulsamos la tecla Intro.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-009

… Y comprobamos que el cambio se ha producido correctamente.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-010

Crear una carpeta para guardar los perfiles móviles en cada cliente

Ahora llega el turno de los equipos clientes. Deberemos repetir el proceso que explicamos en este apartado en cada equipo desde el que los usuarios vayan a iniciar sesión.

En resumen, crearemos una carpeta para usarla como punto de montaje para la carpeta compartida por el servidor.

Recuerda que tienes más detalles en el artículo NFS (parte 5): Acceder a la carpeta compartida desde un cliente Ubuntu 20.04 LTS aunque, en resumidas cuentas, la idea es crear una nueva carpeta y permitir que pueda acceder a ella cualquier usuario:

sudo mkdir /moviles
sudo chmod 777 /moviles

Puedes abrir la ventana de terminal usando la combinación de teclas Alt + Control + T.

Ejecutamos los comandos mkdir y chmod.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-011

Para este ejemplo, hemos hecho coincidir el nombre de la carpeta en el servidor y en el cliente, pero esto no es en absoluto necesario.

Como ya explicamos también en el artículo NFS (parte 5): Acceder a la carpeta compartida desde un cliente Ubuntu 20.04 LTS, el archivo /etc/fstab guarda la información de los volúmenes que deben montarse durante el arranque del sistema operativo.

Como necesitaremos que la carpeta del servidor se monte de forma local en el equipo cliente antes de que el usuario inicie sesión, deberemos añadir la siguiente línea al archivo /etc/fstab:

192.168.1.10:/moviles /moviles nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0

Como ahora tenemos la ventana de la interfaz gráfica, editaremos el archivo con gEdit, pero asegurándonos de tener privilegios administrativos:

sudo gedit /etc/fstab

Escribimos la orden y pulsamos la tecla Intro.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-012

Cuando nos encontremos en el área de trabajo del editor, copiamos la línea anterior.

Cuando completemos la tarea, cerramos la ventana del editor, asegurándonos de guardar los cambios.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-013

Una vez realizados los cambios, deberemos reiniciar el equipo para que éstos sean aplicados.

Comprobar que la configuración funciona correctamente

En realidad, si ya hiciste los ajustes que explicábamos en el artículo LDAP (parte 7): Iniciar sesión gráfica en el equipo cliente con un usuario LDAP, solo tendremos que seguir las mismas pautas con la cuenta lgomez. Sin embargo, antes de eso, para estar completamente seguros de que todo es correcto, iniciaremos sesión con el usuario por primera vez en modo texto y comprobaremos que se crea correctamente la carpeta para el perfil.

Lo conseguiremos abriendo una nueva ventana de terminal y escribiendo lo siguiente:

sudo su - lgomez

Escribimos la contraseña y comprobamos que el directorio se crea correctamente.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-014

En este punto debemos hacer algunas apreciaciones:

  1. El inicio de sesión ha creado el directorio home local para el usuario, pero lo ha hecho en una carpeta compartida por el servidor, por lo que, en realidad, la carpeta se está creando en el servidor.

  2. Para que esto funcione así, habremos tenido que modificar el archivo /etc/pam.d/common-session de los clientes donde va a iniciar sesión el usuario, tal y como explicábamos en el artículo LDAP (parte 6): Configurar un cliente Ubuntu para autenticarse en el servidor OpenLDAP. Si no has modificado este archivo, siempre puedes crear con antelación la carpeta a mano.

Después de esto, toca comprobar que también podemos iniciar sesión de forma gráfica, y que los datos del perfil del usuario se guardan en el servidor.

Comenzaremos cerrando la sesión con el usuario actual y, al volver a la pantalla de autenticación, parecerá que no ha cambiado nada. Recuerda que la pantalla de autenticación de Ubuntu solo muestra los usuarios que ya han iniciado sesión en el sistema, de forma gráfica, al menos una vez.

Por lo tanto, debemos comenzar haciendo clic sobre el enlace ¿No está en la lista?.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-015

Al hacerlo, la pantalla cambia para pedirnos el nombre de la cuenta de usuario.

Escribimos el nombre de la cuenta LDAP y pulsamos la tecla Intro.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-016

A continuación, el sistema nos pide la contraseña.

Como antes, la escribimos y pulsamos la tecla Intro.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-017

Si todo ha sido correcto, comenzará el proceso de inicio de sesión.

… Y, como es la primera vez que iniciamos sesión en el equipo con esa cuenta de usuario, se iniciará el asistente de bienvenida.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-018

Poco después tendremos nuestro entorno de escritorio, listo para comenzar a trabajar.

Para obtener la comprobación definitiva, basta con abrir el explorador de archivos.

Como es habitual, de forma predeterminada nos muestra el contenido de nuestra carpeta de perfil.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-019

Sin embargo, si pulsamos la combinación de teclas Ctrl + L, para mostrar la ruta completa en la barra de dirección, comprobamos que ahora no se trata de una subcarpeta de la carpeta home.

En su lugar, se trata de una subcarpeta de la carpeta moviles.

LDAP-(parte-10)Perfiles-moviles-de-usuario-usando-NFS-y-LDAP-020

Y con esto hemos completado el contenido de este artículo. Espero que te haya resultado interesante.