Я хочу добавить схему в унаследованную мной базу данных OpenLDAP.
ldapadd -vY EXTERNAL -H ldapi:/// -f schema.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
...
adding new entry "cn=openssh-lpk,cn=schema,cn=config"
ldap_add: Insufficient access (50)
Обсуждение того же самого в списке рассылки. проблема внешней аутентификации SASL заставляет меня поверить, что мне нужно «сопоставить ВНЕШНЮЮ личность SASL с cn=config
rootdn. "Как мне этого добиться?
Пытаясь понять это, я создал аналогичную виртуальную машину и установил slapd из репозиториев Ubuntu. Внешние запросы SASL, подобные приведенному выше, работают прямо из коробки. Я попытался сравнить cn=config
настройки между двумя системами, но не удалось найти никаких очевидных ключей для выполнения этой задачи. Производственная база данных изначально работала на Gentoo. Я перенес его на Ubuntu и с радостью редактирую учетные записи и использую его. Однако мне не удалось изменить базу данных конфигурации после преобразования в cn=config
формат во время миграции.
Убедитесь, что есть один olcAccess
атрибут {0}config
база данных (/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
) это выглядит так:
olcAccess: {0}to *
by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage
by * break
В конфигурации по умолчанию в Ubuntu это единственный olcAccess
запись для базы данных конфигурации. Если у вас есть другие записи, убедитесь, что та, которую я упомянул, является первой (т.е. {0}
), а остальные следуют ({1}
, {2}
и т.д.). В противном случае один из других может соответствовать, назначить слишком низкие разрешения и прекратить просмотр списка.
Если в этом списке есть другой пользователь / DN с достаточным (write
, manage
), лучше попытаться изменить olcAccess с помощью LDIF
файл с использованием ldapmodify
с этим пользователем / DN.
В противном случае вы можете:
sudo service slapd stop
sudo sensible-editor /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
sudo service slapd start
Но вы должны исправить CRC32
в этом файле впоследствии.