Эта шпаргалка не претендует на какую либо замену официальной
документаци. RTFM - рулез форева, однако сие творение позволит быстро
настроить и запустить собственно адресную книгу общего пользования -
штуку довольно удобную. Ну а дальше уже можно обвешать все это дело
разными спецфигнями, типа авторизации etc.
Качаем с http://www.openldap.org собственно LDAP сервер. Если хотите в
качестве backenda BerkleyDB, тогда качаем и его (http://www.sleepycat.com)
Надоть версию 4. Кого устроит gdbm - берем его. Меня устроило - ибо он
у меня уже был :). Итак, считаем, DB установлен.
OpenLDAP<version>.tar.gz лежит в /usr/src. Идем туда.
tar -zxvf ./OpenLDAP<version>.tar.gz
cd OpenLDAP<version>
./configure -help > conf.help
БерклейДБ запретил (он включен по умолчанию), ldbm разрешил, без
последнего демон не будет писать логи.
make depend
make
make test
su - root -c make install
Идем в /usr/local/openldap/etc, редактируем slapd.conf Для адресной
книги у меня
подключены три схемы:
include /usr/local/openldap/schema/core.schema
include /usr/local/openldap/schema/cosine.schema
include /usr/local/openldap/schema/inetorgperson.schema
затем обязательно надо сказать:
allow bind_v2 - по умолчанию поддерживается протокол V3, а на сколько
я понял , ни мышь, ни мозила по нему работать не умеют. Впрочем это
мое имхо, если я не прав - поправьте.
pdfile /var/lock/slapd.pid
argsfile /var/lock/slapd.args
loglevel -1 -в лог пишется ВСЯ отладочная информация.
database ldbm
suffix "o=MyOrganization,c=ru" - вместо MyOrganization поставьте, ну скажем, аббревиатуру своей.
rootdn "cn=admin, o=MyOrganization,c=ru " - фактически - учетная звпись администратора.
rootpw MyZuperSecretPassword - его пароль.
directory /usr/local/openldap/var/openldap-data - каталог, где буде база храниться.
index default pres, eq
Все, запускаем сервер -
/usr/local/openldap/sbin/slapd
Смотрим лог - в конце должно стоять что-то типа daemon started. Ага,
потираем руки, идем пить пиво.
cd /usr/local/openldap/var/openldap-data
touch mybase.ldif
dn: o:myorganization,c=ru ; Описываем уникальный ключ корневого каталога
objectclass: dcobject ;Указываем, какие классы объектов доступны (т.е атрибуты каких
objectclass: organization ;классов можно описывать для этого каталога
o: myorganization ; Собственно описываем атрибуты
dc: myorganization ;o и c - сокращение атрибутов organization и country
dn: ou=users,o=sngi,c=ru
ou: users
objectclass: top ;указывает на родительские объекты (?)
objectclass: organizationalunit ;дочерний объект от organization
dn: cn=John S Doe,ou=users,o=myorganization,c=ru
objectclass:top
objectclass: organizationalperson
objectclass: inetorgperson
cn: John Doe ;Общее имя - их может быть несколько, тогда для кажлого - новая строка
mail: john@foo.com
gn: John ; givenname - Имя
sn: Doe ; surname - Фамилия
Таким образом мы будем иметь следующую структуру каталогов:
корневой: myorganization.ru (/)
в корневом пока один: users.myorganization.ru (/users)
в users один пользователь: djohn doe.users.myorganization.ru (/users/john doe)
если вы не хотите пихать всех в одну структурную единицу - создайте
для каждого отдела свою:
dn: ou=cooladmin,o=sngi,c=ru
ou: cooladmin
objectclass: top ;указывает на родительские объекты (?)
objectclass: organizationalunit ;дочерний объект от organization