Документ создан: 03.03.2010

LDAP

Внимание! В данных примерах используются утилиты ldap, входящие в состав Oracle Client.

Поиск пользователя

Для осуществления поиска пользователя можно использовать несколько атрибутов LDAP:

  1. sn:
    ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "sn=Пупкин"
  2. uid:
    ldapsearch -B -h hostname.domain.ru -D "cn=ldapadmin" -w <PASSWORD> -s sub "uid=PupkinIP"
  3. cn:
    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

Как разблокировать пользователя LDAP (SSO)

Пользователя можно разблокировать так:

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
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate