LDAP: как изменить значение атрибута для всех записей каталога с помощью команды ldapmodify? Ищете синтаксис, как показано ниже, во входном файле модификации для команды ldapmodify
dn: uid = *, ou = Люди, dc = example, dc = com
changetype: изменить
добавить: customerNumber
customerNumber: 12345
-
добавить: accountNumber
accountNumber: 12345
Это невозможно сделать с помощью только ldapmodify, но вы можете связать пару вещей вместе, чтобы сделать то, что вы просите. Следующий запуск ldapmodify для файла ldif, который мы создаем на лету из ldapsearch, плюс требуемые изменения.
ldapmodify -f <(ldapsearch -LLL -b ou=People,dc=example,dc=com -s one uid=* dn | sed 's/^$/add: customerNumber\ncustomerNumber: 12345\n-\nadd: accountNumber\naccountNumber: 12345\n-\n/' )
Примечание. Это дает всем совпадающим записям одинаковые customerNumber и accountNumber. Если это не то, что вам нужно, вам придется использовать что-то более сложное, чем sed
возможно awk
или perl
. Кроме того, это, вероятно, достаточно сложно, чтобы вы сначала захотели сделать это более чем в одной строке. Сделайте ldif, просмотрите, затем запустите ldapmodify.