ldapadd / ldapmodify — добавление параметров базы данных

#ldap #openldap #ldif #slapd

#ldap #openldap #ldif #slapd

Вопрос:

Я новичок, когда дело доходит до ldap, и мне интересно, может ли кто-нибудь мне помочь.

Я просматривал учебное пособие (и оно работает), но, похоже, они делают что-то, что не кажется правильным способом сделать это, и я не понимаю синтаксис того, как сделать это другим правильным способом.

То есть: редактирование файла вручную: /usr/local/etc/slapd.d/cn=config/’olcDatabase={0}config.ldif’

И добавление в конец файла:

 olcRootDN: cn=admin,cn=config
olcRootPW: S0m3H@sH
  

Содержимое 'olcDatabase={0}config.ldif' файла (я хэшировал кучу вещей, поэтому игнорируйте «x»):

 # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 1cxxxxdc
dn: olcDatabase={0}config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0 uidNumber=0,cn=peercred,cn=extern
 al,cn=auth" manage by * none
structuralObjectClass: olcDatabaseConfig
entryUUID: 241xxcxx-9xxx-xxx5-xxxe-xxxxxxxfxx2
creatorsName: cn=config
createTimestamp: 2020xxxxxxx2xx
entryCSN: 20201110xxxx8.7xxxxZ#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 202xxxxxxxxx
  

Теперь, когда заголовок файла гласит: «АВТОМАТИЧЕСКИ СГЕНЕРИРОВАННЫЙ ФАЙЛ — НЕ РЕДАКТИРОВАТЬ!! Используйте ldapmodify», поэтому я пытаюсь использовать ldapmodify для обновления файла и добавления необходимых мне параметров… Я знаю, как запустить ldapmodify, но понятия не имею, как я буду генерировать / создавать ldif для внесения изменений.

Я запускаю ldapmodify что-то вроде:

 /usr/bin/ldapmodify -a -x -D "cn=Manager,dc=xxxxxx,dc=xxxxx,dc=xxx,dc=xx" -w "xxxxxxx" -f /etc/openldap/schema/update_rootdnpw.ldif
  

Нужна помощь в создании этого файла update_rootdnpw.ldif, пожалуйста.

Большое спасибо!

Комментарии:

1. Вы правы, они не должны этого делать. LDIF имеет синтаксис для добавления / удаления / замены атрибутов.

2. Хорошо знаю об этом, но мне нужна помощь в написании указанного ldif (не из-за отсутствия попыток, но я пропускаю одну ошибку, получаю другую, а затем нужно вернуться назад, чтобы исправить ее)…

3. Одна ошибка, например, какая? С каким синтаксисом LDIF? Здесь вам нужно задать идентифицируемый вопрос.

Ответ №1:

Наконец-то понял:

 dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}<pass-hash>
  

И выполнить с помощью:

 ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/update_rootdnpw.ldif