Por que não consigo criar meu primeiro objeto no meu servidor Open-LDAP?

2

Estou tentando configurar meu primeiro servidor LDAP que será usado para armazenar contas de usuário (para coisas como email, git server e algumas outras coisas). Consegui instalar o servidor, mas estou preso quando quero criar meu primeiro objeto.

O servidor que quero configurar é ashley-vps.mildred.fr (por enquanto, este é um servidor de teste). Seu dn é dc=ashley-vps, dc=mildred, dc=fr . A primeira coisa que fiz foi importar o cosine (é uma função matemática?) E nis schemas. Em seguida, modifiquei o oldSuffix e oldRootDN da minha configuração da seguinte forma:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=ashley-vps, dc=mildred, dc=fr
-
replace: olcRootDN
olcRootDN: cn=Manager, dc=ashley-vps, dc=mildred, dc=fr

Eu usei a resposta em "nenhum conhecimento global superior" ao adicionar um país como modelo.

Acho que não preciso configurar nenhum acesso especial porque estou usando -Y EXTERNAL -H ldapi:/// e, quando olho minhas configurações de acesso, pareço ter as permissões necessárias:

# {0}config, config
dn: olcDatabase={0}config,cn=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
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" read by dn.base="cn=Manager,dc=my-domain,dc=com" read by * none

Agora, gostaria de criar meu primeiro objeto. Vamos começar por dn: dc=ashley-vps, dc=mildred, dc=fr :

dn: dc=ashley-vps, dc=mildred, dc=fr
changetype: add
objectclass: top
objectclass: organizationalUnit
objectclass: dcObject
ou: ashley-vps.mildred.fr

Eu sou rejeitado com:

ldap_add: Insufficient access (50)
    additional info: no write access to parent

Suponho que isso seja porque isso está além do topo da hierarquia gerenciada pelo servidor LDAP, ou é? E se eu tentar criar diretamente uma pessoa:

dn: cn=Toto, dc=ashley-vps, dc=mildred, dc=fr
changetype: add
objectclass: person
cn: Toto
sn: Surname  

Eu também sou rejeitado com:

ldap_add: No such object (32)

Desta vez, suponho que isso ocorra porque o objeto principal está faltando.

Então, como criar o objeto principal? Por que preciso criar um objeto de topo? Isso parece uma restrição desnecessária. Da mesma forma, ao criar posixAccount s, parece que também precisamos criar um usuário e um grupo organizationalUnit s (como pode ser visto em este howto ). Posso fazer sem?

    
por Mildred 22.03.2013 / 21:40

2 respostas

3

A solução parece adicionar a propriedade olcAccess a dn: olcDatabase={2}hdb,cn=config . Eu pensei que não precisava disso, mas eu faço. Isso possibilita modificar o banco de dados.

Então, adicionei o seguinte código a dn: olcDatabase={2}hdb,cn=config :

-
replace: olcAccess
olcAccess: {0}to *
  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
  by * none

E agora funciona (pelo menos, eu poderia criar dc=ashley-vps,dc=mildred,dc=fr )

Nota: não esqueça de colocar dois espaços para continuações de linhas, senão você obterá o seguinte erro: ldap_modify: Outro erro (por exemplo, implementação específica) (80), < olcAccess > manipulador saiu com 1

edite: veja a página slapd.access(5) man e conceda acesso manage à raiz (as permissões mais altas)

    
por 22.03.2013 / 22:55
0

Eu percebo que é tarde, mas vou postar isso para referência futura. O primeiro erro que não vou abordar, porque acho que você simplesmente não adicionou um esquema obrigatório. Mas para o erro ldap_add: Insufficient access (50) additional info: no write access to parent O seguinte comando é usado para modificar / adicionar esquema:

ldapadd -Q -Y EXTERNAL -H ldapi:/// -w <password> -f </path/to/file>

Para adicionar entradas ao seu LDAP, use esta:

ldapadd -x -D 'cn=Manager,dc=domain,dc=local' -w <password> -H ldapi:/// -f </path/to/file>
    
por 20.12.2016 / 10:58

Tags