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

OpenLDAP - добавьте первую запись

Это второй день, когда я пытаюсь добавить первую запись в OpenLDAP 2.4.44.

Конфигурация:

# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend

# {0}config, config
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none

# {1}monitor, config
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,ou=kyc-sandbox,dc=domain,dc=eu" read by * none

# {2}hdb, config
dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: ou=sandbox,dc=domain,dc=eu
olcRootDN: cn=admin,ou=sandbox,dc=domain,dc=eu
olcRootPW: {SSHA}qBaRencYaGnITygKWsFCuk2T8UkN
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,ou=sandbox,dc=domain,dc=eu" write  by * none

Запись:

ldapadd -Y EXTERNAL -H ldapi:///
dn: ou=sandbox,dc=domain,dc=eu
dc: domain
objectClass: dcObject
objectclass: organizationalUnit
ou: sandbox

adding new entry "ou=sandbox,dc=domain,dc=eu"
ldap_add: Insufficient access (50)
    additional info: no write access to parent

В качестве альтернативы я получаю эту ошибку:

ldap_add: Server is unwilling to perform (53)
    additional info: no global superior knowledge

Как я могу добавить корневую запись?

В -H ldapi:/// -Y EXTERNAL pattern аутентифицирует вас на основе вашего идентификатора пользователя Unix. В вашей вставке выше olcAccess на ваше olcDatabase={2}hdb,cn=config гранты gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth доступ только для чтения, а не для записи.

cn=admin,ou=sandbox,dc=domain,dc=eu это olcRootDN (а также назначен доступ для записи, что является избыточным), поэтому вам следует использовать простую аутентификацию с этим DN и его паролем:

ldapadd -x -D cn=admin,ou=sandbox,dc=domain,dc=eu -W