以下の 2 つの例に、マップをカスタマイズする方法を示します。 必要に応じて、任意のテキストエディタを使用して、/var/yp/NISLDAPmapping ファイルを修正します。 ファイルの属性と構文についての詳細は、NISLDAPmapping(4) のマニュアルページと第 13 章「基本コンポーネントおよび概念 (概要)」の LDAP ネームサービス情報を参照してください。
この例では、DIT でデフォルトの位置から別の (非標準の) 位置にホストエントリを移動する方法を示します。
NISLDAPmapping ファイルの nisLDAPobjectDN 属性を、新しいベース LDAP 識別名 (DN) に変更します。 この例では、LDAP オブジェクトの内部構造は変更されません。したがって、objectClass エントリは変更されません。
変更前:
nisLDAPobjectDN hosts: \
ou=hosts,?one?, \
objectClass=device, \
objectClass=ipHost
|
変更後:
nisLDAPobjectDN hosts: \
ou=newHosts,?one?, \
objectClass=device, \
objectClass=ipHost
|
この変更によって、エントリは以下のようにマッピングされます。
dn: ou=newHosts, dom=domain1, dc=sun, dc=com
元は、以下のようでした。
dn: ou=hosts, dom=domain1, dc=sun, dc=com.
この例では、カスタムマップの実装方法を示します。
仮想のマップ「servdate.bynumber」には、システムのサービス日付についての情報が含まれます。 このマップには、マシンのシリアル番号でインデックスが付けられま す。この例では、123 です。各エントリは、マシンの所有者名、コロン、およびサービス日付のコンマ区切りのリストで構成されます。たとえば、John Smith:1/3/2001,4/5/2003 のようになります。
古いマップ構造は、以下の形式の LDAP エントリにマップされます。
dn: number=123,ou=servdates,dc=... \
number: 123 \
userName: John Smith \
date: 1/3/2001 \
date: 4/5/2003 \
.
.
.
objectClass: servDates
|
NISLDAPmapping ファイルを調べると、必要なパターンに最も近いマッピングが group であることがわかります。 カスタムマッピングは group マッピングを参考にできます。 マップは 1 つだけなので、nisLDAPdatabaseIdMapping 属性は不要です。 NISLDAPmapping に追加される属性は、以下のとおりです。
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), ",")
|