안녕하세요..
ldapadd 할때요.. 스키마를 정의 해야 한다고 하던데요..
기본적으로는 "top", "person", "organizationalPerson", "inetOrgPerson"
이것들이 있어야 add 가되는거 같더라구요.. 하나라도 없으면 에러 나더라구요..
이 것을 체크하는 파일이 무엇이며, 이것을 어떻게 제 입 맛에 맞게 구성을 하나요..
도와 주세요..
ldif 포맷으로 입력을 하시든 그냥 프롬프트에서 입력을 하시든 저 오브젝트 파일들을 선언을 했기 때문에 속성값을 넣어야 입력이 됩니다. 기본적으로 top 값은 가지고 있어야 되는 것 같더군요. 가장 상위엔트리를 나타내는 것인 것 같습니다. 어떤 속성값을 입력을 하셨는지는 몰라도 위 오브젝트에서 반드시 들어가야하는 속성값을 입력하였기 때문에 위의 오브젝트가 있어야 입력이 된 것 같네요. 위의 오브젝트가 다 필요한 것은 아닙니다. 그리고 잘은 모르지만 스키마를 정의해서 사용할 수 있습니다. 스키마 파일은 /etc/openldap/schema/ 밑에 있습니다. 이름.schema로 파일을 만들어 스키마를 정의하시면 됩니다. 스키마 정의는 rfc2252에 보시면 감이 오실 것 같네요. 저도 몇번 읽어 보고 대충 알겠네요 ㅡㅡㅋ 아직 감이 잘 안와요..
ldap schema는 표준으로 이렇게 사용한다고 이야기 되지만 실지로 이를 구현할때는 LDAP에 따라 사용방법이 달라 집니다.
만약 inetorgperson으로 Entry를 생성한다면 이 스키마는 필수/옵션으로 어트리뷰트가 구별됩니다. add를 하기 위해서는 필수 값만 모두 입력하면 사용자를 생성할 수 있습니다.
cn,sn,objectclass... 이런 필수 값만 입력하면 Entry 추가가 됩니다. SunLDAP의 경우 위 값은 기본 schema에 존재하며, 신규로 만들기 위해서는 LDAP Admin 콘솔을 이용하며 쉽게 만들 수 있습니다.
질문이 좀 틀렸는데 스키마 체크는 스키마 파일로 체크하는것이 아니라 Sun ldap의 경우 plugin으로 체크 합니다. 그리고 스키마 생성은 수동으로 생성하기 위해서는 /slapd-xxxx/config/schema의 폴더 있는 99user.ldif를 만들거나 하지만 이는 초보자는 힘이 들기 때문에 GUI툴을 이용하여 사용하시면 쉽게 하실 수 있습니다. 위의 답변은 OpenLDAP의 경우 사용하시면 됩니다.