Назад | Перейти на главную страницу

Как добавить новый атрибут к существующим объектам пользователей LDAP

Я хочу добавить атрибут почты существующим пользователям ldap. Я думаю, это возможно с использованием ldapmodify, но не знаю, как это сделать. Я сделал это вручную, используя веб-интерфейс phpldapadmin, но мне нравится более 100 пользователей, и я не хочу делать это вручную для всех.

Может ли кто-нибудь направить меня в правильном направлении.

$ ldapmodify -H ldap://yourhost -D cn=youradmin,dc=your,dc=domain -x -W
( enter password here )
dn: uid=username,ou=people,dc=your,dc=domain
changetype: modify
add: mail
mail: youremailaddress@here.com

Сначала я укажу вам на Раздел 3.3 из Руководство администратора сервера каталогов Red Hat для быстрого руководства по созданию LDIF файлы, подходящие для использования с ldapmodify. Для начала создайте записи для пары из ваших сотен пользователей. Этот файл поможет вам избавиться от ошибок. Как только вы освоитесь с форматом файла, вы можете создавать записи для оставшихся около 100 человек. Вот пример того, как может выглядеть отдельная запись:

dn: cn=Joe Smith,dc=example,dc=com
changetype: modify
add: mail
mail: Joe.Smith@example.com

Правовые значения для changetype: являются add, modify, delete, и modrdn. Если вы используете changetype: modify, правовые изменения add:, delete:, и replace:. В разделе 3.3 приведены примеры того, как все это работает.

Затем, когда файл будет записан, у вас есть несколько способов отправить его на сервер LDAP. Один из способов - передать файл прямо в ldapmodify команда:

ldapmodify -x -h $LDAP_HOST -D $LDAP_BINDDN -W -f $FILE

В -W переключатель говорит ldapmodify спросить пароль для $LDAP_BINDDN в командной строке. Это означает, что вы не оставляете пароль для своего LDAP-сервера в файле истории оболочки. Если вы хотите ввести пароль в свой ldapmodify команда, используйте -w $PASSWORDвместо этого. В -f $FILE переключатель говорит ldapmodify какой файл LDIF проверить на предмет вносимых изменений.

На самом деле мне не нравится использовать -f $FILE переключатель. Передача файла в ldapmodify требует 100% уверенности, что я правильно написал этот файл LDIF. Если я ошибаюсь, ldapmodify выйдет, не сообщив мне мою ошибку. Итак, я бы использовал второй метод. Использовать ldapmodify команду, которую я привел в качестве примера, но без этого -f $FILE переключатель. Без этого переключателя ldapmodify получает свои модификации от STDIN. Итак, я могу скопировать две или три записи из собранного мной файла LDIF и вставить их в свою оболочку для ldapmodify обрабатывать. Я делаю 2–4 записи за раз и исправляю записи LDIF «на лету» по мере необходимости. Это медленнее, чем передача идеального файла LDIF непосредственно в ldapmodify, но быстрее, чем выяснять, где я сделал опечатку в этом файле.

Для непосредственного редактирования записей LDAP я предпочитаю использовать ldapvi, который дает вам редактор, в котором вы можете вносить изменения более удобным для пользователя способом.

Видеть http://www.lichteblau.com/ldapvi/

Да, вы можете использовать ldapmodify для этого. Вам необходимо сгенерировать файлы LDIF, содержащие операторы изменений, а затем направить их на свой сервер LDAP с помощью ldapmodify. Для получения дополнительной информации прочтите man ldapmodify, который также содержит примеры.