嘗試向 openLDAP 添加新的 objectClass 時獲取“ldap_add:伺服器不願意執行 (53) 附加資訊:沒有全域高級知識”

嘗試向 openLDAP 添加新的 objectClass 時獲取“ldap_add:伺服器不願意執行 (53) 附加資訊:沒有全域高級知識”

我創建了新的架構,如下所示

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 中。

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

從那時起我就面臨這個問題。

我現在已經第三天陷入困境了,我真的很絕望,如果有任何幫助,我將非常感激。

答案1

我認為問題在於你的新物件類別的 dn 很簡單:

cn=ekcrlegalofficer

所以它不在您的目錄中的任何後綴下。它應該是這樣的:

cn=ekcrlegalofficer,cn=schema,cn=config

我相信。

相關內容