Устанавливаем пакеты
apt-get update
apt-get install slapd ldap-utils samba-doc
Если вы пропустили настройку **slapd** во время установки, то потом в любой момент воспользуйтесь командой
dpkg-reconfigure slapd
Отвечаем на вопросы:
* Не выполнять настройку сервера OpenLDAP? : Нет
* Доменное имя DNS : drivesource.ru
* Название организации : Drive Source Team
* Используемые серверы баз данных : HDB
* Удалять базу данных при вычистке slapd? : Да
* Переместить старую базу данных? : Да
* Пароль администратора : password
* Подтвердите ввод пароля : password
* Allow LDAPv2 protocol? : Да
Посмотрим теперь что же мы имеем
ldapsearch -b cn=config -D cn=admin,cn=config -x -W '(objectCLass=olcDatabaseConfig)' dn
Результат команды будет следующим
# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: (objectClass=*)
# requesting: dn
#
# config
dn: cn=config
# module{0}, config
dn: cn=module{0},cn=config
# schema, config
dn: cn=schema,cn=config
# {0}core, schema, config
dn: cn={0}core,cn=schema,cn=config
# {1}cosine, schema, config
dn: cn={1}cosine,cn=schema,cn=config
# {2}nis, schema, config
dn: cn={2}nis,cn=schema,cn=config
# {3}inetorgperson, schema, config
dn: cn={3}inetorgperson,cn=schema,cn=config
# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
# {0}config, config
dn: olcDatabase={0}config,cn=config
# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
# search result
search: 2
result: 0 Success
# numResponses: 11
# numEntries: 10
Добавим схему **samba.schema**
Копируем схему **samba.schema** в файл
zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
Составим список схем которые нужно преобразовать в формат **ldif**
cat < schema_convert.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema
EOFLIST
Преобразуем схему **samba.schema** в формат **ldif**
rm -rf /tmp/ldif_output
mkdir /tmp/ldif_output
slaptest -f schema_convert.conf -F /tmp/ldif_output
find /tmp/ldif_output -type f -name '*samba.ldif' -exec cp {} /etc/ldap/schema/samba.ldif \;
echo -e '1c\ndn: cn=samba,cn=schema,cn=config\n.\n3c\ncn: samba\n.\n$n\n-6,$d\nwq' | ed /etc/ldap/schema/samba.ldif
Загрузим схему **samba.ldif** в базу OpenLDAP
ldapadd -x -D cn=admin,cn=config -W -f /etc/ldap/schema/samba.ldif
Составим список индексирования оптимальный для данных **samba.ldif**
cat <samba_indexes.ldif
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
EOFINDEX
Загрузим новые индексы в сервер OpenLDAP
ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif