OpenLDAP kann keine neuen Attribute hinzufügen

OpenLDAP kann keine neuen Attribute hinzufügen

Ich möchte einige Benutzerkonten mit Attributen wie „Geschlecht“ erstellen, was bedeutet, dass ich benutzerdefinierte Attribute erstellen muss.

Ich habe die folgende LDIF-Datei erstellt:

dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 1.2.3.4.5.6.7.8.9.0 NAME ( 'gender' ) DESC 'gender' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

und versuchen Sie, es mit anzuwenden ldapmodify -D cn=admin,cn=config -W -f ExtendedUser.ldif.

Aber ich erhalte immer diesen Fehler:

modifying entry "cn=schema"
ldap_modify: Invalid syntax (21)
        additional info: attributeTypes: value #0 invalid per syntax

Ich weiß, dass ich zur Verwendung des Attributs ohnehin auch eine Objektklasse benötige und habe dies zunächst mit einer Objektklassendefinition und anderen einbezogenen Attributen versucht (siehe unten), aber dabei ist derselbe Fehler aufgetreten.

altes, aufwändigeres LDIF:

dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 1.2.3.4.5.6.7.8.9.0 NAME 'gender' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.1 NAME 'birthdate' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.2 NAME 'birthplace' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.3 NAME 'nationality' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.4 NAME 'street' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.5 NAME 'zipcode' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.6 NAME 'city' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.7 NAME 'phone' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributeTypes: ( 1.2.3.4.5.6.7.8.9.8 NAME 'matnr' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

dn: cn=schema
changetype: modify
add: objectClasses
objectClasses: ( 4.5.6.7.8.9.2 NAME 'AdditionalAttrPerson' DESC 'adds user attributes' SUP inetOrgPerson STRUCTURAL MUST ( gender $ birthdate $ birthplace $ nationality $ street $ zipcode $ city $ phone $ matnr ) )

Ich habe keine Ahnung, was ich falsch mache, da ich die Syntax aus Tutorials kopiert habe und sie zu passen scheint. Bitte helfen Sie.

Ich habe versucht, ldapmodify mit aktivierten Debug-Ebenen auszuführen. Die Ausgabe scheint nicht hilfreich zu sein, aber hier ist das Ende mit dem Fehler:

...
ldap_do_free_request: asked to free lr 0x561b24af5cb0 msgid 2 refcnt 0
ldap_parse_result
ber_scanf fmt ({iAA) ber:
ber_scanf fmt (}) ber:
ldap_msgfree
ldap_err2string
ldap_modify: Invalid syntax (21)
        additional info: attributeTypes: value #0 invalid per syntax

ldap_free_connection 1 1
ldap_send_unbind
ber_flush2: 7 bytes to sd 4
ldap_free_connection: actually freed

Die Sachen darüber scheinen mir definitiv nichts damit zu tun zu haben.

Antwort1

Ich hätte mir von Anfang an einfach die anderen LDIF-Dateien im Schema ansehen sollen, aber hier ist meine Lösung:

Die erste Zeile mussdn cn=myschema,cn=schema,cn=config

und die folgenden sollten auf der linken Seite olcAttributeTypes oder olcObjectClasses haben, nicht das, was ich hatte. Beispiel:

dn: cn=myschema,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: myschema
olcAttributeTypes: ( 1.3.6.1.4.1.995.1.2.1 NAME 'gender'
 EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

verwandte Informationen