LDAP (parte 10): Perfiles móviles de usuario usando NFS y LDAP en Ubuntu 14.04 LTS

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 apartado Configurar el servidor NFS del capítulo 10 (Instalar y configurar NFS en Ubuntu). 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

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

Ahora tenemos que lograr que NFS comparta la carpeta con todos los usuario de la red. De nuevo, puedes obtener más detalles en el capítulo 10, Instalar y configurar NFS en Ubuntu, concretamente en el apartado Configurar el servidor NFS. 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)

Usamos el editor gEdit con privilegios de superusuario.

Cuando hagas cambios en el archivo /etc/exports, recuerda que debes reiniciar el servicio NFS para que sean efectivos. Para lograrlo, sólo tienes que escribir la siguiente orden en la ventana de terminal:

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

Reiniciamos el servicio NFS.

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


Ahora, en cada equipo cliente desde el que los usuarios vayan a iniciar sesión, deberemos repetir el mismo proceso, que consiste en crear la carpeta que usaremos después como punto de montaje para la carpeta compartida con el servidor.

Recuerda que tienes más detalles en el apartado Acceder a la carpeta compartida con NFS desde un cliente con Ubuntu, en el capítulo 11 de nuestro libro Sistemas Operativos en Red (2ª edición). 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

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.

Ejecución de los comandos mkdir y chmod.

Modificar el archivo /etc/fstab en cada cliente para montar la carpeta en el arranque

Como ya explicamos en el capítulo 10, también dentro del apartado Acceder a la carpeta compartida con NFS desde un cliente con Ubuntu, 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

De nuevo, usamos el editor gEdit con privilegios de superusuario.

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

Indicar en el usuario LDAP la carpeta donde tendrá su perfil en el cliente

El último paso consistirá en modificar los usuario existentes, o crear otros nuevos, indicando que su atributo homeDirectory es una subcarpeta de la carpeta que hemos creado en los pasos anteriores.

Para completar esta tarea puedes seguir cualquiera de los métodos que hemos explicado en este capítulo.

En nuestro caso, hemos creado un nuevo usuario llamado amartinez usando la herramienta LDAP Account Manager (donde el atributo homeDirectory recibe el nombre Directorio inicial).

Como puede verse en la imagen, hemos indicado que la carpeta home del usuario se encontrará en /moviles/amartinez.

Comprobar que la configuración funciona correctamente

Si realizaste las modificaciones oportunas en LightDM, sólo tendrás que iniciar el cliente e indicar el nombre de la cuenta LDAP y su contraseña.

En cualquier caso, recuerda que basta con iniciar sesión la primera vez en modo texto, para que se cree el perfil del usuario en el cliente.

Observamos que al iniciar sesión en modo texto, se crea el directorio local para guardar los datos del cliente.

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 apartado Configurar un equipo cliente con Ubuntu para autenticarse en el servidor OpenLDAP de este mismo capítulo. Si no has modificado este archivo, siempre puedes crear con antelación la carpeta a mano.

A partir de aquí, la próxima vez que inicies sesión en el cliente, ya encontrarás el nuevo usuario en la pantalla de autenticación.

Sólo habrá que escribir la contraseña para comenzar a trabajar.

Como verás, la sesión se inicia igual que con cualquier otro usuario.

Podemos obtener la comprobación definitiva si accedemos en el servidor a la carpeta que está compartiendo.

Podremos comprobar que se ha creado la carpeta amartinez y que contiene los datos del perfil del usuario.

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