Нет доступа на запись к родителю

2636
Jack Admin

Я сталкиваюсь с проблемой chen, пытаясь настроить сервер openldap с помощью chef.

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

  • Ubuntu 15.04
  • OpenLdap 2.4.31
  • Chef / OpenLdap 2.7.1

Для информации, когда я запускаю dkpg-reconfigure slapd (который не используется при попытке автоматизировать процесс), часть 1 проблемы решается (без изменения любого файла конфигурации phpldapadmin), но часть 2 остается.

Часть 1: при доступе к учетной записи администратора phpldapadmin пользователь с правами администратора недоступен (сообщение: эту базу невозможно создать с помощью PLA.)

Часть 2: при попытке выполнить sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/db.ldifсообщение об ошибке:

STDERR: SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 ldap_add: Insufficient access (50) additional info: no write access to parent 

slapd.conf

include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/nis.schema  pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args  loglevel 0  modulepath /usr/lib/ldap moduleload back_hdb  sizelimit 500 tool-threads 1  database hdb suffix "dc=a6,dc=com" rootdn "cn=admin,dc=a6,dc=com" rootpw a6a6aa66a6a6a6a6a6a6a6 directory "/var/lib/ldap" lastmod on  dbconfig set_cachesize 0 31457280 0  dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500  index default pres,eq,approx,sub index objectClass eq index cn,ou,sn,uid,l,mail,gecos,memberUid,description index loginShell,homeDirectory pres,eq,approx index uidNumber,gidNumber pres,eq 

db.ldif

dn: dc=a6,dc=com objectClass: top objectClass: dcObject objectClass: organization dc: a6 o: a6 description: A6  dn: cn=admin,dc=a6,dc=com cn: admin description: LDAP administrator objectclass: simpleSecurityObject objectclass: organizationalRole userpassword: Aa6a6aa66a6a6a6a6a6a6a6  dn: ou=users,dc=a6,dc=com objectClass: top objectClass: organizationalUnit ou: users  dn: ou=groups,dc=a6,dc=com objectClass: top objectClass: organizationalUnit ou: groups  dn: cn=administrators,ou=groups,dc=a6,dc=com objectClass: posixGroup cn: administrators gidNumber: 500  dn: uid=co,ou=administrators,dc=a6,dc=com objectclass: inetOrgPerson objectclass: posixAccount cn: co gidnumber: 500 givenname: Jack homedirectory: /home/co loginshell: /bin/bash uid: co uidnumber: 1000 userpassword: a6a6aa66a6a6a6a6a6a6a6 

Спасибо за вашу помощь. L.

2

2 ответа на вопрос

2

Я встретил ту же ошибку:

CMD: ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif

SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "dc=example,dc=com" ldap_add: Insufficient access (50) additional info: no write access to parent 

И мой контент base.ldif:

CMD: cat base.ldif  dn: dc=example,dc=com objectClass: dcObject objectclass: organization o: example.com dc: example description: My LDAP Root  dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin userPassword: secret description: LDAP administrator 

Я исправил ошибку командой:

 ldapadd -x -D 'cn=admin,dc=example,dc=com' -w secret -H ldapi:/// -f base.ldif 

Успешная:

adding new entry "dc=example,dc=com"  adding new entry "cn=admin,dc=example,dc=com" 
2
Torkel Bjørnson-Langen

ACL по умолчанию не позволяют этого. Внешняя аутентификация не имеет доступа для записи в дерево; это имеет только администратор / суперпользователь ldap (rootdn). (На самом деле это обходит все ACL.)

Так что либо связывайтесь как администратор ldap - как подсказывает другой ответ - либо добавьте свои собственные правила acl.

Я использую это как первое правило acl:

to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth write by * break 

Вы также можете использовать manageвместо write.

Похожие вопросы