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
Я публикую ответ здесь, а не комментирую этот ответ, потому что чтобы показать флаг кода выше.