Устанавливаем пакеты
apt-get update apt-get install slapd ldap-utils samba-doc
Если вы пропустили настройку slapd во время установки, то потом в любой момент воспользуйтесь командой
dpkg-reconfigure slapd
Отвечаем на вопросы:
Посмотрим теперь что же мы имеем
ldapsearch -b cn=config -D cn=admin,cn=config -x -W '(objectCLass=olcDatabaseConfig)' dn
Результат команды будет следующим
# extended LDIF
#
# LDAPv3
# base <cn=config> 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 <<EOFLIST > 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 <<EOFINDEX >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