Perl для системного администрирования



         

LDAP: сложная служба каталогов - часть 16


use Mozilla::LDAP::Conn;

Sserver = $ARGV[0];

Sport = getservbyrianieC'ldap". "tcp") ii "389"

Ssuffix = "ou=People, ou=Systems, dc=ccs, dc=hogwarrs. ac=edu":

Srootdn = "cn=Manager, ou=Systems. dc=ccs. oc=hogwarrs, dc=edu":

$pw = "secret";

ft неанонимное соединение

$c = new Mozilla::LDAP::Conn($server,Sport,Srootdn,$pw):

die "Невозможно соединиться с $server\n" unless $c:

$e = new Mozilla::LDAP::Entry;

ft DN-имя - это идентификатор пользователя плюс суффикс,

ft определяющий, куда поместить его в дереве каталогов

$e->setDN("uid=$ARGV[1],Ssuffix");

$e->addValue('uid', $ARGV[1]);

$e->addValue('cn', $ARGV[2]);

$c->add($e);

die "Ошибка при добавлении: ". $c->getErrorString(),"\n" if $c-

>getErrorCode();

Обратите внимание, что в программе не выполняется проверка ошибок при вводе. Если вы пишете сценарий, который действительно может использоваться в интерактивном режиме, необходимо проверять вводимые данные, чтобы убедиться, что в них нет неэкранированных специальных символов, подобных запятым. Обратитесь к ранее приведенному «совету с совой» за разъяснениями о том, как заключать в кавычки значения атрибутов.

Теперь перейдем к Net: :LDAP. При желании процесс добавления элементов для Net: : LDAP может быть менее объектно-ориентированным. В него входят модуль Entry (Net:: LDAP: : Entry) и конструктор для экземпляра объекта элемента. Однако он содержит еще одну функцию add(), которая способна принимать структуру данных для добавления элемента за один шаг:

$res = $c->add(

dn => 'uid=jay, ou=systems, ou=people. dc=ccs, dc=hogwarts, dc=edi/ attr =>

[ 'en' => 'Jay Sekora', ' sn => 'Sekora', 'mail' => 'jayguy@ccs.hogwarts.edj', 'title' = -

[ 'Sysadmin'.' Part-time Lect-jrer' ]. 'uid' => 'jayguy' ]

На этот раз add() передается два аргумента. Первый - это DN-имя для элемента; второй - ссылка на анонимный массив пар атрибут-значение. Обратите внимание, что атрибуты с несколькими значениями, например title, определяются при помощи вложенного анонимного массива. Тем, кто привык работать со структурами данных в Perl и кому не нравится объектно-ориентированный стиль программирования, такой подход придется больше по душе.




Содержание  Назад  Вперед