Назад | Перейти на главную страницу

Невозможно создать дамп базы данных LDAP после изменений

Я добавил атрибут в свою базу данных LDAP, запустив

ldapmodify -QY EXTERNAL -H ldapi:/// -f openssh-lpk.schema

как корень, где openssh-lpk.schema содержит это:

# Author: Eric AUGE <eau@phear.org>
#
# Based on the proposal of : Mark Ruijter
#
version: 1

dn: cn=openssh-lpk,cn=schema,cn=config
changetype: add
cn: openssh-lpk
objectClass: olcSchemaConfig
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
  DESC 'OpenSSH Public key'
  EQUALITY octetStringMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
  DESC 'OpenSSH LPK objectclass'
  MUST uid
  MAY sshPublicKey )

dn: cn={5}inetorgperson,cn=schema,cn=config
changetype: modify
replace: olcObjectClasses
olcObjectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RF
 C2798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL
 MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayNam
 e $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddre
 ss $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ page
 r $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIden
 tifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 $ sshPublicK
 ey ) )

Это прекрасно работает - я могу изменять пользователей, добавляя их открытые ключи к их записи, а затем читать эти данные от других клиентов.

Проблемы возникают, когда я пытаюсь создать резервную копию базы данных с помощью slapcat хотя:

5b044b38 olcObjectClasses: value #0 olcObjectClasses: AttributeType not found: "sshPublicKey"
5b044b38 config error processing cn={5}inetorgperson,cn=schema,cn=config: olcObjectClasses: AttributeType not found: "sshPublicKey"
slapcat: bad configuration file!

Что я сделал не так slapcat не может увидеть определение для sshPublicKey?

Вы не должны были изменять inetorgperson. В этом не было необходимости. Любое количество AUXILIARY Объектные классы могут сосуществовать вместе (с одним STRUCTURAL objectClass).

Ваш slapd может быть в порядке, если вы его перезапустите.