Además de las funciones mencionadas en la entradas anteriores, una de las principales características del protocolo Ldap es el acceso a recursos de forma centralizada. En práctica es el acceso a una carpeta o fichero situado en un servidor desde un cliente a través de la red. Para ello se debe configurar el protocolo de premisos de red de Linux, teniendo la posibilidad de utilizar NFS (nativo, más rápido y con menos sobrecarga de red pero menos personalizable y uniplataforma) y SMB (menos rápido, con más sobrecarga de red pero más personalizabla y multiplataforma). Para este ejemplo se utilizará el protocolo NFS al estar un una red uniforma, con el siguiente esquema:

Lo primero que se debe hacer es instalar el demonio NFS tanto en el cliente como en el servidos siendo los paquetes

# paquete a instalar en el servidor
apt-get install nfs-kernel-server
# paquete a instalar en el cliente
apt-get instal nfs-common

Una vez los paquetes están instalados en el servidor se haber el fichero de compartición de recursos /etc/exports y se indica la dirección del recurso a compartir por red y la ip de la máquina con la que se quiere compartir con sus opciones

sudo nano /etc/exports
# se incluye la siguiente linea, teniendo en cuenta que debe existir la carpeta /recursos/recurso_ldap 
#en el servidor y que será la que se comparta por red con la máquina 10.0.0.10 con opciones de rw
/recursos/recurso_ldap    10.0.0.10(rw)

Tras esto se respeta el dominio de nfs /etc/init.d/nfs-kernel-server restart y el recurso ya estaría accesible por red desde cualquier cliente, siempre respetando los permisos de red (en este caso rw y los permisos locales, los cuales se pueden ver haciendo un ls -l de la carpeta compartida). Para este ejemplo se utilizará el siguiente esquema de permisos:

  • Ususario develop: Podrá leer y escribir el directorio. Será el poseedor del directorio.
  • Usuario system: Tan solo podrá leer el directorio.
  • Usuario guest: no tendrá ningún permiso sobre el directorio, ni siquiera podrá entrar.

Una vez se han otorgado los permisos de red, lo siguiente es en el servidor configurar los permisos locales, haciendo referencia a cada uno de los usuarios que podrán realizar acciones. En el caso de usuarios y grupos de OpenLdap se deberá utilizar el gidNumber o el uidNumber para otorgar los permisos locales. Para ello se deberán realizar las siguientes acciones en el origen del recurso (en este caso el servidor)

  • cambiar el usuario propietario al usuario develop con el comando chown 2000 /recursos/recurso_ldap
  • cambiar el grupo propietario a sistemas con el comando chgrp 5001 /recursos/recurso_ldap
  • incluir el usuario system en este grupo agregando el atributo memberUid al grupo mediante la modificación del grupo con el siguiente archivo .ldif
dn: cn=sistemas,ou=sistemas,dc=develop,dc=local
changetype: modify
add: memberUid
memberUid: system

y la ejecución del comando

ldapmodify -x -D cn=admin,dc=develop,dc=local -W -f cambio.ldif
  • cambiar los permisos del fichero a 740 con el comando chmod 750 /recursos/recurso_ldap

Una vez realizados estos cambios en el servidor los usuarios podrán acceder al recurso, bien desde consola o bien a una carpeta previamente montada por el administrador y que deberá existir en el cliente. Con el siguiente comando se montará el recurso compartido en red en la carpeta /montaje del cliente

mount 10.0.0.2:/recursos/recurso_ldap /montaje

o bien de forma definitiva mediante la modificación del fichero /etc/fstab

# tras nano /etc/fstab
10.0.0.2:/recursos/recurso_ldap   /montar   nfs   defaults   0   0