Новый код ошибки LDAP 50 - Недостаточные права доступа
Я установил новый OpenLDAP в Ubuntu 14.04 (slapd) и экспортировал полностью файл LDIF из старого OpenLDAP в FreeBSD и импортировал в новый.
Все есть и работает отлично. Анонимный поиск, привязка пользователя и администратор могут делать все что угодно. Но проблема в том, что пользователь связывания хочет изменить некоторые из своих собственных атрибутов, таких как description, GivenName и т. Д. Он дает:
Код ошибки LDAP 50 - Недостаточные права доступа
Есть ли что-то в "slapd.conf", которое останавливает самостоятельную запись для пользователя? Я не коснулся "slapd.conf" или чего-либо в "/slapd.d/cn=config/".
Тест ENV: то же приложение имеет ошибку с новым сервером LDAP, и оно прекрасно работает со старым, когда я меняю адрес LDAP. Так что это не приложение. Также я проверил это с "apachedirectorystudio". Оба результата одинаковые. Отлично работает на старом, а не на новом сервере.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Спасибо
ОБНОВЛЕНИЕ: я запустил "ldapsearch -Y ВНЕШНИЙ -H ldapi:/// -b cn=config" и получил эти результаты:
{0}hdb, config
dn: olcBackend={0}hdb,cn=config
objectClass: olcBackendConfig
olcBackend: {0}hdb
# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth manage by * break
olcAccess: {1}to dn.exact="" by * read
olcAccess: {2}to dn.base="cn=Subschema" by * read
olcSizeLimit: 500
# {0}config, config
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth manage by * break
# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=iscpif,dc=fr
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
s auth by dn="cn=admin,dc=example,dc=com" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=example,dc=com" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: {SSHA}
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
# search result
search: 2
result: 0 Success
# numResponses: 12
# numEntries: 11
Возможно ли, что olcAccess вызывает это? Не должен ли slapd.conf перезаписать их?
1 ответ
slapd либо использует slapd.conf, либо cn=config для своей конфигурации. Я догадываюсь, что "работающий" сервер использует первый, в то время как "сломанный" сервер использует второй. Докажите эту гипотезу, посмотрев на процесс slapd с помощью команды "ps" на каждом сервере:
ps ax | grep slapd