En los ejemplos de esta sección, se muestra cómo se pueden personalizar los mapas. Utilice su editor de texto preferido para modificar el archivo /var/yp/NISLDAPmapping según sea necesario. Para obtener más información sobre los atributos de archivos y su sintaxis, consulte la página del comando man NISLDAPmapping(4) y la información de servicios de nombres LDAP en el Chapter 1, Introducción al servicio de nombres LDAP.
Ejemplo 8-1 Traspaso de entradas de hostEn este ejemplo, se muestra cómo mover entradas de host de la ubicación predeterminada a otra ubicación (no estándar) en el DIT.
Cambie el atributo nisLDAPobjectDN en el archivo NISLDAPmapping para el nuevo nombre distintivo (DN) de la base de LDAP. En este ejemplo, la estructura interna de los objetos LDAP no cambia, por lo que las entradas objectClass no cambian.
Cambie:
nisLDAPobjectDN hosts: \ ou=hosts,?one?, \ objectClass=device, \ objectClass=ipHost
a:
nisLDAPobjectDN hosts: \ ou=newHosts,?one?, \ objectClass=device, \ objectClass=ipHost
Este cambio produce que las entradas se asignen en
dn: ou=newHosts, dom=domain1, dc=sun, dc=com
en lugar de asignarse en
dn: ou=hosts, dom=domain1, dc=sun, dc=com.
Ejemplo 8-2 Implementación de un mapa personalizadoEn este ejemplo, se muestra cómo implementar una asignación personalizada.
Una asignación hipotética, servdate.bynumber, contiene información sobre las fechas de servicio para los sistemas. Este mapa está indexado por el número de serie de la máquina que, en este ejemplo, es 123. Cada entrada consiste en el nombre del propietario del equipo, dos puntos y una lista separada por comas de fechas de servicio, como John Smith:1/3/2001,4/5/2003.
La estructura antigua asignación se debe asignar a las entradas de LDAP de la siguiente manera:
dn: number=123,ou=servdates,dc=... \ number: 123 \ userName: John Smith \ date: 1/3/2001 \ date: 4/5/2003 \ . . . objectClass: servDates
Al examinar el archivo NISLDAPmapping, puede ver que la asignación más cercana al patrón requerido es group. La asignaciones personalizadas se pueden modelar en la asignación group. Debido a que hay sólo un mapa, no es necesario el atributo nisLDAPdatabaseIdMapping. Los atributos que se van a agregar a NISLDAPmapping son los siguientes:
nisLDAPentryTtl servdate.bynumber:1800:5400:3600 nisLDAPnameFields servdate.bynumber: \ ("%s:%s", uname, dates) nisLDAPobjectDN servdate.bynumber: \ ou=servdates, ?one? \ objectClass=servDates: nisLDAPattributeFromField servdate.bynumber: \ dn=("number=%s,", rf_key), \ number=rf_key, \ userName=uname, \ (date)=(dates, ",") nisLDAPfieldFromAttribute servdate.bynumber: \ rf_key=number, \ uname=userName, \ dates=("%s,", (date), ",")