Les exemples de cette section illustrent la façon dont vous pouvez personnaliser les cartes. Utilisez l'éditeur de texte de votre choix pour modifier le fichier /var/yp/NISLDAPmapping selon vos besoins. Pour plus d'informations sur la syntaxe et les attributs de fichier, reportez-vous à la page de manuel NISLDAPmapping(4) et aux informations relatives aux services de noms LDAP dans le Chapter 1, Introduction au service de noms LDAP.
Exemple 8-1 Déplacement des entrées d'hôteCet exemple montre comment déplacer les entrées d'hôte de l'emplacement par défaut à un autre emplacement (non standard) dans l'arborescence DIT.
Remplacez l'attribut nisLDAPobjectDN dans le fichier NISLDAPmapping par le nouveau DN (nom distinctif) LDAP de base. Pour cet exemple, la structure interne des objets LDAP n'est pas modifiée, de sorte que les entrées objectClass restent inchangées.
Remplacez :
nisLDAPobjectDN hosts: \ ou=hosts,?one?, \ objectClass=device, \ objectClass=ipHost
par :
nisLDAPobjectDN hosts: \ ou=newHosts,?one?, \ objectClass=device, \ objectClass=ipHost
Suite à cette modification, les entrées sont mappées sous
dn: ou=newHosts, dom=domain1, dc=sun, dc=com
et non sous
dn: ou=hosts, dom=domain1, dc=sun, dc=com.
Exemple 8-2 Implémentation d'une carte personnaliséeCet exemple montre comment implémenter une carte personnalisée.
Une carte hypothétique, servdate.bynumber, contient des informations sur les dates de service pour les systèmes. Cette carte est indexée par le numéro de série de la machine qui, dans cet exemple, est 123. Chaque entrée se compose du nom du propriétaire de la machine, d'un signe deux-points et d'une liste de dates de service séparées par des virgules, par exemple, John Smith:1/3/2001,4/5/2003.
L'ancienne structure de la carte doit être mappée sur les entrées LDAP de la forme suivante :
dn: number=123,ou=servdates,dc=... \ number: 123 \ userName: John Smith \ date: 1/3/2001 \ date: 4/5/2003 \ . . . objectClass: servDates
L'examen du fichier NISLDAPmapping permet de voir que le mappage le plus proche du modèle requis est group. Les mappages personnalisés peuvent être modélisés sur le mappage group. Etant donné qu'il n'existe qu'une seule carte, aucun attribut nisLDAPdatabaseIdMapping n'est requis. Les attributs à ajouter à NISLDAPmapping sont les suivants :
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), ",")