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