이 절의 예에서는 맵을 사용자 정의할 수 있는 방법을 보여 줍니다. 원하는 텍스트 편집기를 사용하여 필요에 따라 /var/yp/NISLDAPmapping 파일을 수정합니다. 파일 속성 및 구문에 대한 자세한 내용은 NISLDAPmapping(4) 매뉴얼 페이지 및 Chapter 1, LDAP 이름 지정 서비스 소개의 LDAP 이름 지정 서비스 정보를 참조하십시오.
예 8-1 호스트 항목 이동이 예에서는 기본 위치에서 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.
예 8-2 사용자 정의 맵 구현이 예에서는 사용자 정의 맵을 구현하는 방법을 보여 줍니다.
가상 맵 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), ",")