Вы пометили атрибут как рабочий (с USAGE directoryOperation
), отсюда и ошибка.
Операционные атрибуты не должны изменяться пользователями; им требуется код, работающий в OpenLDAP, для обновления их в зависимости от какого-либо события.
Кроме того, я бы рекомендовал не изменять стандартные схемы, такие как inetOrgPerson и т. д. Вам следует создать собственную схему.
Я подозреваю, что в этих строках есть конечные пробелы, и это толкает их к зацикливанию. Вы пытались сбросить начало файла в восьмеричном/шестнадцатеричном формате, чтобы проверить, так ли это?
Затем вы можете использовать простую команду sed
, чтобы исправить все файлы в зацикленном сценарии оболочки, прежде чем вы начнете.
Скорее всего, дело в том, что исходные файлы содержат разрывы строк Windows. Команда paste
, кажется, работает неправильно с разрывами строк Windows в сочетании с разделителем. Вы можете проверить это, используя od
для файлов. Если он содержит \r\n
, вам сначала нужно это исправить. Исправить это можно с помощью dos2unix
.
Проверка моей системы:
[stc@se] $ echo -e "foo\r" > a ; echo -e "bar\r" > b
[stc@se] $ od -c a
0000000 f o o \r \n
0000005
[stc@se] $ paste a b
foo bar
[stc@se] $ paste -d"," a b
,bar
Исправление с помощьюdos2unix
:
[stc@se] $ dos2unix a b
dos2unix: converting file a to Unix format...
dos2unix: converting file b to Unix format...
[stc@se] $ paste -d"," a b
foo,bar
dos2unix
не установлен по умолчанию во всех системах Linux, поэтому вам все равно может потребоваться его установка.