ldap_modify: недостаточный доступ (50)

Я использую сервер OpenLDAP 2.4, который использует службу SSL для связи. Это работает для поиска.

Я пытаюсь добавить зеркальный режим репликации.

Так что это команда, которую я выполняю:

ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif

Где это мой server_id.ldif:

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2

и это мой cn\=config.ldif в дереве текстовых файлов slapd.d:

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z

Но, к сожалению, я получаю это:

Enter LDAP Password: 
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

Если я пытаюсь указать базу данных конфигурации, я получаю это:

ldapmodify -H 'ldaps://myloadbalancer/cn=config' -D "cn=myuser,cn=config" -W -f ./server_id.ldif 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)}

Кто-нибудь знает, как я могу добавить serverID в базу данных конфигурации, чтобы я мог завершить настройку режима зеркала?

3 ответа

Решение

Это именно то, что написано на банке. Ваш DN cn=myuser,dc=mydomain,dc=com недостаточно прав для изменения cn=config дерево. И когда вы пытаетесь "указать базу данных конфигурации", вы используете совершенно другое DN, cn=myuser,cn=config, который, по-видимому, либо не существует, либо вы используете неправильный пароль.

Для выполнения подобных изменений вам необходимо работать с учетной записью, обладающей достаточными правами для изменения различных баз данных. Учетная запись "admin", то есть та учетная запись, которая всегда имеет все привилегии, указывается в атрибуте olcRootDN и его пароль находится в olcRootPW, Для cn=config База данных эти атрибуты находятся в olcDatabase={0}config,cn=config и для "обычной" базы данных, обычно типа HDB, в olcDatabase={1}hdb,cn=config,

Какой учебник или документацию вы использовали? Не похоже, что вы полностью понимаете, что вы здесь делаете.

Поскольку у меня была довольно похожая проблема, я попытался найти интересное решение, но безрезультатно. В отличие от Линн Оуэнс, мне не удалось добавить пароль для администратора в olcDatabase={0}config,cn=config, Мне наконец удалось изменить мой cn=config используя такие команды, как:

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif

Спасибо, Чикен Суоп! Наконец, мне удалось изменить уровень журнала в cn=config следующим образом:

      $ sudo ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF
dn:           cn=config
changetype:   modify
replace:      olcLogLevel
olcLogLevel:  256
EOF

Я публикую ответ здесь, а не комментирую этот ответ, потому что чтобы показать флаг кода выше.

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