Sun Java System Directory Server Enterprise Edition 6.2 관리 설명서

LDAP를 통한 객체 클래스 관리

이 절에서는 LDAP를 통해 객체 클래스를 만들고 보고 삭제하는 방법에 대해 설명합니다.

객체 클래스 만들기

cn=schema 항목에는 디렉토리 스키마에서 각 객체 클래스의 정의가 포함된, 여러 값을 갖는 속성 objectClasses가 있습니다. ldapmodify(1) 명령을 사용하면 이러한 정의에 다른 내용을 추가할 수 있습니다.

새 객체 클래스 정의 및 사용자 정의 객체 클래스에 대한 변경 사항은 99user.ldif 파일에 저장됩니다.

다른 객체 클래스에서 상속 받는 객체 클래스를 여러 개 만드는 경우에는 먼저 부모 객체 클래스를 만들어야 합니다. 새 객체 클래스에 사용자 정의 속성이 사용되면 이러한 속성도 먼저 정의해야 합니다.

각 객체 클래스 정의에 반드시 OID를 입력해야 합니다. 또한 새 객체 클래스에 반드시 다음 요소를 사용해야 합니다.

Procedure객체 클래스를 만드는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. RFC 4517에 지정된 구문에 따라 객체 클래스 정의를 준비합니다.

  2. ldapmodify(1) 명령을 사용하여 객체 클래스 정의를 추가합니다.

    디렉토리 서버에서는 사용자가 입력한 정의에 X-ORIGIN 'user defined'를 추가합니다.


예 11–4 객체 클래스 만들기

다음 예에서는 ldapmodify 명령을 사용하여 새 객체 클래스를 추가합니다.


$ cat blogger.ldif 
dn: cn=schema
changetype: modify
add: objectClasses
objectClasses: ( 1.2.3.4.5.6.8 
 NAME 'blogger' 
 DESC 'Someone who has a blog' 
 SUP inetOrgPerson 
 STRUCTURAL 
 MAY blog )

$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -f blogger.ldif
Enter bind password: 
modifying entry cn=schema

$

작업 환경에서 1.2.3.4.5.6.8이 아닌 유효한 고유 OID를 입력합니다.


객체 클래스 보기

cn=schema 항목에는 디렉토리 스키마에서 각 객체 클래스의 정의가 포함된, 여러 값을 갖는 속성 objectClasses가 있습니다. ldapsearch(1) 명령을 사용하면 이러한 정의를 읽을 수 있습니다.

Procedure객체 클래스를 보는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. ldapsearch 명령을 사용하여 현재 디렉토리 스키마에 있는 모든 객체 클래스 정의를 봅니다.


예 11–5 객체 클래스 보기

다음 명령을 실행하면 모든 객체 클래스의 정의가 표시됩니다.


$ ldapsearch -T -b cn=schema "(objectclass=*)" objectClasses

-T 옵션을 사용하면 ldapsearch 명령 실행 시 LDIF 줄이 겹치지 않으므로 grep 또는 sed와 같은 명령을 사용하여 출력 작업을 쉽게 수행할 수 있습니다. 그런 다음 grep 명령을 통해 이 명령의 출력을 파이프하면 디렉토리 스키마에 대해 사용자 정의 확장만 볼 수 있습니다. 예를 들면 다음과 같습니다.


$ ldapsearch -T -b cn=schema "(objectclass=*)" objectClasses | grep "user defined"
objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger'
 DESC 'Someone who has a blog' STRUCTURAL MAY blog
 X-ORIGIN 'user defined' )
$ 

객체 클래스 삭제

cn=schema 항목에는 디렉토리 스키마에서 각 객체 클래스의 정의가 포함된, 여러 값을 갖는 속성 objectClasses가 있습니다. ldapmodify(1) 명령을 사용하면 X-ORIGIN 'user defined'가 포함된 정의를 삭제할 수 있습니다.

스키마는 cn=schema에 있는 LDAP 뷰에서 정의되기 때문에 ldapsearchldapmodify 유틸리티를 사용하여 온라인으로 스키마를 보고 수정할 수 있습니다. 그러나 X-ORIGIN 필드에 대해서는 ’user defined’ 값이 있는 스키마 요소만 삭제할 수 있습니다. 서버에서 다른 정의는 삭제되지 않습니다.

사용자 정의 요소에 대한 변경 사항은 99user.ldif 파일에 저장됩니다.

Procedure객체 클래스를 삭제하는 방법

DSCC를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 디렉토리 서비스 제어 센터 인터페이스 및 DSCC 온라인 도움말을 참조하십시오.

  1. 삭제할 객체 클래스의 정의를 봅니다.

    자세한 내용은 객체 클래스를 보는 방법을 참조하십시오.

  2. ldapmodify(1) 명령을 사용하여 스키마에 표시된 대로 객체 클래스 정의를 삭제합니다.


예 11–6 객체 클래스 삭제

다음 명령을 실행하면 예 11–4에서 만든 객체 클래스가 삭제됩니다.


$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password: 
dn: cn=schema
changetype: delete
delete: objectClasses
objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger' DESC 'Someone who has a blog' 
 STRUCTURAL MAY blog X-ORIGIN 'user defined' )
^D

이 스키마 정의를 확장으로 분류하려면 디렉토리 서버에서 추가된 X-ORIGIN 'user defined'를 포함시켜야 합니다.