OpenLDAP не может добавить новую схему

Я пытаюсь добавить новую схему на свой сервер OpenLDAP. Версия slapd - 2.4.23. Я использую Debian 6.

Если я хорошо это понял, slapd 2.4+ использует конфигурацию OLC с (cn=config) по умолчанию для этой версии, и мне не нужно ничего менять в slapd.conf или каком-либо другом месте в дереве cn = config (я не прав?). Но когда я пытаюсь добавить схему с помощью следующей команды:

ldapadd -x -D "cn=admin,cn=config" -W -f filesystem.ldif

это дает мне:

Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

Я также попробовал эту команду (даже если я не знаю, что я здесь делаю):

ldapadd -x -D "cn=admin,dc=linuxcbt,dc=internal" -W -f filesystem.ldif

где dc=linuxcbt,dc=internal - это моя база, я получаю:

adding new entry "cn=filesystem,cn=schema,cn=config"
ldap_add: Insufficient access (50)

Мой файл filesystem.ldif:

dn: cn=filesystem,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: filesystem

olcAttributeTypes: ( 1000.1.1.1 NAME ( 'fn' 'filename' )
   DESC 'Nome del file'
   EQUALITY 'Case exact match'
   SUBSTR caseExactSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes: ( 1000.1.1.2 NAME ( 'fs' 'filesize'  )
   DESC 'Dimensione del file'
   EQUALITY integerMatch
   ORDERING integerOrderingMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcObjectClasses: ( 1000.1.2.1 NAME ( 'dir'
   DESC 'Una directory'
   MUST fn
   MAY fs
   AUXILIARY )

olcObjectClasses: ( 1000.1.2.2 NAME ( 'file'
   DESC 'Un file'
   MUST (fn $ fs)
   AUXILIARY )

Теперь я застрял с этим.

1 ответ

Решение

Пытаться

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f filesystem.ldif

Это будет работать, только если вы работаете с правами суперпользователя (uid=0) или через sudo и на сервере LDAP direct. Он подключается к серверу LDAP на основе идентификатора пользователя и обходит обычные методы аутентификации.

Этот доступ предоставляется olcAccess правило

{0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage  by * none

в olcDatabase={0}config,cn=config,

Чтобы разрешить доступ "обычным" способом, вы можете добавить следующие строки в olcDatabase={0}config,cn=config:

olcRootDN: cn=admin,cn=config
olcRootPW: <yourpassword>  

где <yourpassword> должен быть предварительно зашифрован через slappasswd,

Другие вопросы по тегам