Как добавить новый атрибут к существующему LDAP objectclass?

Решение закончило тем, что было к командам выполнения через простую страницу PHP. Соединение было внутренним к нашей сети, и мы не волновались по поводу шифрования, просто удаленно инициировав команду и получая вывод. Должно быть, был другой инструмент сценариев командной строки, который мы, возможно, использовали, но подход, который мы проявили, закончил тем, что был очень прост и удовлетворил наши потребности.

5
задан 9 November 2012 в 02:14
1 ответ

Краткий ответ

Используйте ldapmodify точно так же, как и для обычной записи ldap с многозначными атрибутами.

Это в значительной степени то, что я ожидал, но я не был уверен на 100% из-за индексации {N}, которую вы видите, когда выполняете поиск схемы ldap.

Подробный ответ

Во-первых, найдите dn вашей схемы. Что-то вроде cn = {4} test, cn = schema, cn = config Затем напишите файл ldif и примените его к своему каталогу. В Ubuntu 12.04 я применил его как root:

ldapmodify -Q -Y EXTERNAL -H ldapi://  -f test.ldif

У меня были проблемы с синтаксисом модификации ldif и с индексами {N}.

Итак, начало вашего ldif файла должно быть чем-то например:

version: 1

dn: cn={N}test,cn=schema,cn=config
changetype: modify

Чтобы изменить объектный класс:

delete: olcObjectClasses
olcObjectClasses: <old value>
-
add: olcObjectClasses
olcObjectClasses: <new value>

Чтобы изменить атрибут:

delete: olcAttributeTypes
olcAttributeTypes: <old value>
-
add: olcAttributeTypes
olcAttributeTypes: <new value>

Несколько советов, которые я понял по поводу синтаксиса:

  • Игнорируйте индексы {N} в вашем файле ldif. Они исправляются автоматически.
  • Вам действительно нужен {N} в DN вашей схемы.
  • Запомните " - " между операторами.
  • Не ставьте новую строку после ' - '. ldapmodify останавливается на этой новой строке, поэтому ничего после нее не будет выполняться.
  • Добавьте новые атрибуты, прежде чем изменять объектный класс, чтобы включить их.
  • Удалите все символы табуляции. Они заставляют систему выдавать тарабарщину.
6
ответ дан 3 December 2019 в 01:32

Теги

Похожие вопросы