%20%EC%B6%94%EA%B0%80%20%EC%A0%95%EB%B3%B4%3A%20%EA%B8%80%EB%A1%9C%EB%B2%8C%20%EC%9A%B0%EC%88%98%ED%95%9C%20%EC%A7%80%EC%8B%9D%20%EC%97%86%EC%9D%8C%22%EC%9D%B4%20%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4..png)
다음과 같은 새로운 스키마를 만들었습니다.
attributetype ( 2.25.3236588
NAME 'x-candidateNumber'
DESC 'Candidate number'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.3536282
NAME 'x-candidateFullName'
DESC 'Candidate name'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.6587875
NAME 'x-candidateTitleBeforeName'
DESC 'Candidate title before name'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.6164147
NAME 'x-candidateTitleAfterName'
DESC 'Candidate title after name'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.1702122
NAME 'x-candidateBirthNumber'
DESC 'Candidate title after name'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.3134432
NAME 'x-candidateListedAt'
DESC 'Candidate listed at'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.3682754
NAME 'x-candidateErasedAt'
DESC 'Candidate erased at'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.5497561
NAME 'x-candidateNote'
DESC 'Candidate note'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
attributetype ( 2.25.9736218
NAME 'x-candidateStatus'
DESC 'Candidate status'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
objectclass ( 2.25.1798306
NAME 'ekcrCandidate'
DESC 'RFC1274: simple security object'
SUP ( top $ person $ organizationalPerson $ inetOrgPerson )
STRUCTURAL
MUST (cn $ ou)
MAY ( x-candidateNumber $ x-candidateFullName $ x-candidateTitleBeforeName $
x-candidateBirthNumber $ x-candidateTitleAfterName $ x-candidateListedAt $
x-candidateErasedAt $ x-candidateNote $ x-candidateStatus
))
이 스키마를 Schema_convert.conf 파일에 추가했습니다.
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/pmi.schema
include /etc/ldap/schema/ekcrconcipient.schema
include /etc/ldap/schema/ekcrcandidate.schema
include /etc/ldap/schema/ekcrlegalofficer.schema
그런 다음 스키마를 ldif 파일로 변환했습니다.
slaptest -f schema_convert.conf -F /tmp/ldif_output
설명대로 수정한 파일이 생성되었습니다.여기4단계. 결과 cn={14}ekcrlegalofficer.ldif 파일은 이제 다음과 같습니다.
dn: cn=ekcrlegalofficer
objectClass: olcSchemaConfig
cn: ekcrlegalofficer
olcAttributeTypes: {0}( 2.25.7702021 NAME 'x-legalOfficerNumber' DESC 'Legal o
fficer number' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
32768} )
olcAttributeTypes: {1}( 2.25.960171 NAME 'x-legalOfficerFullName' DESC 'Legal
officer name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{3
2768} )
olcAttributeTypes: {2}( 2.25.196694 NAME 'x-legalOfficerTitleBeforeName' DESC
'Legal officer title before name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1
.1466.115.121.1.15{32768} )
olcAttributeTypes: {3}( 2.25.7643140 NAME 'x-legalOfficerTitleAfterName' DESC
'Legal officer title after name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.
1466.115.121.1.15{32768} )
olcAttributeTypes: {4}( 2.25.1064416 NAME 'x-legalOfficerListedAt' DESC 'Legal
officer listed at' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
1.15{32768} )
olcAttributeTypes: {5}( 2.25.1005975 NAME 'x-legalOfficerErasedAt' DESC 'Legal
Officer erased at' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
1.15{32768} )
olcAttributeTypes: {6}( 2.25.5513419 NAME 'x-legalOfficerNote' DESC 'Legal Off
icer note' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{3276
8} )
olcAttributeTypes: {7}( 2.25.4535859 NAME 'x-legalOfficerStatus' DESC 'Legal O
fficer status' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
32768} )
olcObjectClasses: {0}( 2.25.6182638 NAME 'ekcrLegalOfficer' DESC 'RFC1274: sim
ple security object' SUP ( top $ person $ organizationalPerson $ inetOrgPerso
n ) STRUCTURAL MUST ( cn $ ou ) MAY ( x-legalOfficerNumber $ x-legalOfficerFu
llName $ x-legalOfficerTitleBeforeName $ x-legalOfficerTitleAfterName $ x-leg
alOfficerListedAt $ x-legalOfficerErasedAt $ x-legalOfficerNote $ x-legalOffi
cerStatus ) )
그런 다음 이 새로운 objectClass를 추가하려고 했습니다.
ldapadd -D "cn=admin,cn=config" -W -f cn={14}ekcrlegalofficer.ldif
그 결과 나는 이것을
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
나는 이 오류가 잘못된 데이터베이스에 새 레코드를 추가하려고 할 때 발생할 수 있다는 것을 이해했습니다. 하지만 새 개체 클래스를 만들려고 하기 때문에 이것이 내 경우는 아니어야 합니다.
과거에는 실제로 효과가 있었지만 다음을 사용하여 openLDAP 서버를 재구성했습니다.
dpkg-reconfigre slapd
그 이후로 저는 이 문제에 직면하게 되었습니다.
저는 지금 3일째 이 문제에 봉착해 있고 정말 절망적입니다. 어떤 도움이라도 주시면 정말 감사하겠습니다.
답변1
내 생각에 문제는 새 객체 클래스의 DNS가 간단하다는 것입니다.
cn=ekcrlegalofficer
따라서 디렉토리의 접미사 아래에 있지 않습니다. 다음과 같아야 합니다.
cn=ekcrlegalofficer,cn=schema,cn=config
나는 믿는다.