Внимание! В данных примерах используются утилиты ldap, входящие в состав Oracle Client.
Для осуществления поиска пользователя можно использовать несколько атрибутов LDAP:
ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "sn=Пупкин"
ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "uid=PupkinIP"
ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "cn=PupkinIP"
Где:
"-B
" — выводить не ASCI символы;
"-h hostname.domain.ru
" — имя хоста, к которому нужно подключиться;
"-D "cn=ldapadmin"
" — учётная запись для доступа к каталогу LDAP;
"-w <PASSWORD>
" — пароль учётной записи (<PASSWORD> нужно заменить на реальный пароль);
"-s sub
" - subtree.
Для вывода определённых атрибутов, любая их вышеприведённых команд модифицируется, например, так:
ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "cn=PupkinIP" ou
ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "cn=PupkinIP" sn givenname middlename
cn
содержит "BA31939E
" или "074049
": ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> \ '&(!(cn=*BA31939E*))(!(cn=*074049*))(sn=*)' sn givenname middlename
Найти нескольких пользователей одним запросом и вывести их OU:
ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> "|(cn=PupkinIP)(cn=IvanovII)(uid=Guest)" ou
Для добавления пользователя нужно подготовить данные определённым образом. Нам достаточно так:
dn: cn=PupkinIP,cn=Users,dc=stroy,dc=mos,dc=ru cn: PupkinIP sn: Пупкин objectclass: top objectclass: person objectclass: inetorgperson objectclass: organizationalPerson objectclass: orcluser objectclass: orcluserv2 ou: Орг. givenname: Иван middlename: Петрович uid: PupkinIP userpassword: <PASSWORD> mail: pupkin@email.ru
<PASSWORD> в нашем случае, должен быть не менее пяти символов с обязательным наличием и алфавитных символов, и цифр.
Сформированные таким образом данные либо записываем в файл, либо подаём на вход команде ldapadd
. В случае с файлом (допустим что, файл назван add_user.ldif), команда выглядит так:
ldapadd -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -f add_user.ldif
либо
cat add_user.ldif | ldapadd -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD>
Где:
"-h hostname.domain.ru
" — имя хоста, к которому нужно подключиться
"-D "cn=ldapadmin"
" — учётная запись для доступа к каталогу LDAP
"-w <PASSWORD>
" — пароль учётной записи (<PASSWORD> нужно заменить на реальный пароль)
"-f add_user.ldif
" — использовать данные из указанного файла. Файл должен быть указан с полным путём либо лежать в текущем каталоге
Для изменения атрибутов пользователя, проще создать файл такого вида (например, modify.ldif
):
dn: cn=PupkinIP,cn=Users,dc=domain,dc=ru changetype: modify replace: ou ou: Организация
Где:
"dn:
" - кому
"changetype: modify
" — модификация (может быть <modify|add|delete|modrdn>)
"replace: ou
" — что нужно заменить
"ou: Организация
" — новое значение аттрибута
Далее выполняем следующую команду:
ldapmodify -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -f modify.ldif
Где:
"-h hostname.domain.ru
" — имя хоста, к которому нужно подключиться
"-D "cn=ldapadmin"
" — учётная запись для доступа к каталогу LDAP
"-w <PASSWORD>
" — пароль учётной записи (<PASSWORD> нужно заменить на реальный пароль)
"-f modify.ldif
" — использовать данные из указанного файла. Файл должен быть указан с полным путём либо лежать в текущем каталоге
Также можно использовать следующий вид:
ldapmodify -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> << EOF dn: cn=PupkinIP,cn=Users,dc=domain,dc=ru changetype: modify replace: ou ou: Организация EOF
Пользователя можно разблокировать так:
ldapmodify -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> << EOF dn: cn=PupkinIP,cn=Users,dc=domain,dc=ru changetype: modify add: orclpwdaccountunlock orclpwdaccountunlock: 1 EOF
ldapmodify -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> << EOF dn: cn=PupkinIP,cn=Users,dc=domain,dc=ru changetype: modify replace: userpassword userpassword: <NEW USER PASSWORD> EOF
ldapmodify -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> << EOF dn: cn=MyGroup,cn=groups,dc=domain,dc=ru changetype: modify add: uniquemember uniquemember: cn=PupkinIP,cn=Users,dc=domain,dc=ru EOF
ldapmodify -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> << EOF dn: cn=MyGroup,cn=groups,dc=domain,dc=ru changetype: modify delete: uniquemember uniquemember: cn=PupkinIP,cn=Users,dc=domain,dc=ru EOF