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

ldap_modify: Other (e.g., implementation specific) error (80), <olcaccess> обработчик вышел с 1</olcaccess>

При изменении конфигурации Open-LDAP с помощью:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to *
 by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
 by * none

Я получаю сообщение об ошибке:

ldap_modify: Other (e.g., implementation specific) error (80)
    additional info: <olcAccess> handler exited with 1

Это связано с тем, что продолжение строки в файле ldif удаляет первый пробел, и атрибут считается следующим: {0}to *by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" writeby * none (что неверно)

Итак, поставьте дополнительный пробел перед продолжением строки:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to *
  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
  by * none

Имейте в виду, что эта ошибка возникает, когда у вашего оператора olcAccess также есть другие проблемы с синтаксисом. Например, я использовал ключевое слово в одном из моих предложений 'by', которое ему не принадлежит, и вместо того, чтобы сказать мне "здесь нельзя использовать 'UID'" он все время повторял: «slapd: line 0: ожидая, что 'access' получил [мой DN]». Ошибки для этой штуки тупые.

Вам нужно создать этот файл mod_acl.ldif со следующим содержимым в точном формате, что очень сложно. И используйте следующую команду:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f mod_acl.ldif

Ожидаемый результат:

modifying entry "olcDatabase={1}mdb,cn=config"

Содержимое mod_acl.ldif

dn: olcDatabase={1}mdb,cn=config
replace: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange,krbPrincipalKey
 by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write
 by * none
-
add: olcAccess
olcAccess: to dn.base=""
  by * read
-
add: olcAccess
olcAccess: to *
  by dn="cn=admin,dc=example,dc=com" write
  by * read

Будьте осторожны, тип базы данных Ldap может измениться в зависимости от вашей реализации. mdb, hdb или другое зависит от вашей установки.

Обычно это происходит, когда вы копируете и вставляете с веб-страниц.

Я разобрался с такой проблемой, следуя инструкциям, упомянутым @Mildred, а также использовал :set ff=unix в редакторе Vim, чтобы игнорировать плохие форматы