LDAP (parte 10): Perfiles móviles de usuario usando NFS y LDAP
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:
-
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.
-
Modificar el archivo /etc/exports para compartir el directorio anterior con permisos de lectura/escritura para todos los usuarios.
-
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.
-
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.
-
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
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
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.
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
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
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.
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
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.
Incluso podemos utilizar el comando slapcat para comprobar el contenido del directorio:
sudo slapcat
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.
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
Cuando nos encontremos en el área de trabajo del editor, copiamos la línea anterior.
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
En este punto debemos hacer algunas apreciaciones:
-
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.
-
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.
Al hacerlo, la pantalla cambia para pedirnos el nombre de la cuenta de usuario.
A continuación, el sistema nos pide la contraseña.
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.
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.
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.
Y con esto hemos completado el contenido de este artículo. Espero que te haya resultado interesante.