1

Не получается запустить openldap .Не работает
# /usr/local/libexec/slapd

Делал всё по http://darold.net/projects/ldap_pg/HOWTO/

Никаких ошибок при установке не возникало.

2

Остальное необходимо угадать? Где логи, конфиги и т.д.?

3

все конфиги из мана. LDAP просто не стартует.Ошибок никаких не выводит.

4

Так, напишу еще раз... я не буду каждый раз лезть по вашим ссылкам, чтобы посмотреть конфиги, откровенно лень
а если еще учесть, что при копировании оттуда вы могли ошибиться или еще что, то разговор становится совсем бессмысленным
так что, или выкладывайте, или будете долго ждать ответа иначе
нету телепатов

5

/usr/local/etc/odbc.ini

 Консоль:
;
;  odbc.ini
;
[ODBC Data Sources]
PgSQL=PostgreSQL

[PgSQL]
; WARNING: The old psql odbc driver psqlodbc.so is now renamed psqlodbcw.so
; in version 08.x. Note that the library can also be installed under an other
; path than /usr/local/lib/ following your installation.
Driver=/usr/local/lib/psqlodbcw.so
Description=Connection to LDAP/POSTGRESQL
Servername=localhost
Port=5432
Protocol=6.4
FetchBufferSize=99
Username=test
Password=test
Database=pg_ldap
ReadOnly=no
Debug=1
CommLog=1

[ODBC]
InstallDir=/usr/local/lib


/usr/local/etc/odbcinst.ini
 Консоль:
;
;  odbcinst.ini
;
[PostgreSQL]
Description=ODBC for PostgreSQL
; WARNING: The old psql odbc driver psqlodbc.so is now renamed psqlodbcw.so
; in version 08.x. Note that the library can also be installed under an other
; path than /usr/local/lib/ following your installation.
Driver=/usr/local/lib/psqlodbcw.so

[ODBC]
Trace=1
Debug=1
Pooling=No


/usr/local/etc/openldap/slapd.conf
 Консоль:
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.
# Define global ACLs to disable default read access.
access to *
        by self write
        by * read
access to * by dn="cn=root,dc=example,dc=com" write

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /usr/local/var/slapd.pid
argsfile        /usr/local/var/slapd.args

#######################################################################
# sql database definitions
#######################################################################

database        sql
suffix         "dc=example,dc=com"
rootdn         "cn=root,dc=example,dc=com"
rootpw          secret
dbname          PgSQL
dbuser          test
dbpasswd        test
insentry_query  "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"
upper_func      "upper"
strcast_func    "text"
concat_pattern  "?||?"
has_ldapinfo_dn_ru      no

lastmod off

6

Ещё вопрос: в репах есть пакет openldap-server-sql ,но при запуске ldap'a он выдает сообщение о том ,что не поддерживает sql...как его использовать?

7

Вы из исходников собирали что ли?

8 (18.09.2010 23:53:24 отредактировано thexf)

сначала из исходников всё,потом с (установка с нуля) postgresql,unixODBC,postgresql-odbc ставил из репов. OpenLDAP собираю из исходников потому как не получается воспользоваться пакетом openlda-server-sql.
собирал Openldap c параметрами  --enable-sql --without-cyrus-sasl --disable-bdb --disable-hdb --with-odbc=auto. Далее make , make depend, make install.

9

бардак какой-то... какая ось?

thexf пишет:

OpenLDAP собираю из исходников потому как не получается воспользоваться пакетом openlda-server-sql.

что значит не получается воспользоваться?

10

Запускаю openldap
/usr/local/libexec/slapd

Ничего в терминале не выводиться,в логах про ldap пусто.

 Консоль:

[root@localhost ~]# /usr/local/libexec/slapd
[root@localhost ~]# ps -ef |grep slapd
root     11520  9157  0 12:46 pts/1    00:00:00 grep slapd
[root@localhost ~]# ldapsearch -x -h localhost -b "dc=example,dc=com"
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

11

Centos 5.5 .
Устанавливаю пакет openlda-server-sql , он тянет за собой openldap-server. Я так понимаю,что так и должно быть smile . Но когда в slapd.conf параметр database указать sql ,он ругается на неизвестный тип этого параметра.

12

Вот что получается если openlda-server-sql поставить из репов.

 Консоль:
[root@localhost openldap-2.4.23]# /etc/init.d/ldap start
Checking configuration files for slapd:  Unrecognized database type (sql)
/etc/openldap/slapd.conf: line 23: <database> failed init (sql)!
slaptest: bad configuration file!
                                                           [FAILED]

13

не проще пересобрать rpm-пакет openldap  с поддержкой sql? проблем будет сильно меньше, чем из исходников собирать

14

Т.е. rpm-пакет openldap  с поддержкой sql из репов нерабочий?и с rpmforge тоже не подойдет? ac

15

Рабочий, но пакет openldap-server-sql содержит загружаемый модуль, который ldap может использовать для чтения данных из базы...
сам ldap должен бвть собран, если не ошибаюсь, с --enable-sql... для этого проще всего собрать свой rpm-пакет

16

Собираю rpm'ку вылезают ошибки...

 Консоль:

# ./configure --enable-sql --without-cyrus-sasl --disable-bdb --disable-hdb --with-odbc=auto
# make
# make depend
# checkinstall -R
[root@localhost ~]# rpm -i openldap-2.4.23-1.i386.rpm
        file /usr/libexec/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package cpp-4.1.2-48.el5.i386
        file /usr/lib/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package libstdc++-devel-4.1.2-48.el5.i386
        file /usr/lib/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-4.1.2-48.el5.i386
        file /usr/libexec/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-4.1.2-48.el5.i386
        file /usr/lib/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-gfortran-4.1.2-48.el5.i386
        file /usr/libexec/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-gfortran-4.1.2-48.el5.i386
        file /sbin/ldconfig from install of openldap-2.4.23-1.i386 conflicts with file from package glibc-2.5-49.el5_5.4.i686

17

старая версия checkinstall было...openldap установился,но результат тотже.

 Консоль:
[root@localhost etc]# /usr/local/libexec/slapd start
[root@localhost etc]# ps -ef| grep slapd
root     18777  4053  0 00:14 pts/1    00:00:00 grep slapd

18 (19.09.2010 11:22:50 отредактировано thexf)

Я - невнимательный лошара smile
Проблема решена.
Все пакеты беру из репов... но тепеь очень внимательно читаю конфиг,так как надо (оказывается!) указать параметры модулей.

# Load dynamic backend modules:
modulepath      /usr/lib/openldap


# modules available in openldap-servers-sql RPM package:
moduleload back_sql.la

19

Возникла новая проблема  ac

 Консоль:
[root@localhost ~]# cat /etc/odbc.ini
[PgSQL]
Description         = Example for OpenLDAP's back-sql
Driver              = PostgreSQL
Trace               = No
Database            = pg_ldap
Servername          = ldap.mydomain.com
UserName            = test
Password            = test
Port                = 5432
;Protocol            = 6.4
ReadOnly            = No
RowVersioning       = No
ShowSystemTables    = No
ShowOidColumn       = No
FakeOidIndex        = No
[root@localhost ~]# cat /etc/odbcinst.ini
# Example driver definitinions
#
#

# Included in the unixODBC package
[PostgreSQL]
Description     = ODBC for PostgreSQL
Driver          = /usr/lib/libodbcpsql.so
Setup           = /usr/lib/libodbcpsqlS.so
FileUsage       = 1


# Driver from the MyODBC package
# Setup from the unixODBC package
#[MySQL]
#Description    = ODBC for MySQL
#Driver         = /usr/lib/libmyodbc.so
#Setup          = /usr/lib/libodbcmyS.so
#FileUsage      = 1
[root@localhost ~]# cat /etc/openldap/slapd.conf
# $OpenLDAP: pkg/ldap/servers/slapd/back-sql/rdbms_depend/pgsql/slapd.conf,v 1.4.2.1 2005/01/20 18:04:03 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.
access to * by self write
access to * by * read
access to * by dn="cn=Manager,dc=mydomain,dc=com" write
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /usr/local/var/slapd.pid
argsfile        /usr/local/var/slapd.args
modulepath      /usr/lib/openldap
moduleload      back_sql.la
#######################################################################
# sql database definitions
#######################################################################

database        sql
suffix          "dc=mydomain,dc=com"
rootdn          "cn=Manager,dc=mydomain,dc=com"
rootpw          secret
dbname          PgSQL
dbuser          test
dbpasswd        test
insentry_stmt   "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"
upper_func      "upper"
strcast_func    "text"
concat_pattern  "?||?"
has_ldapinfo_dn_ru      no

lastmod off
[root@localhost ~]# service ldap start
Checking configuration files for slapd:  WARNING: No dynamic config support for database sql.
backend_startup_one: bi_db_open failed! (1)
slap_startup failed (test would succeed using the -u switch)
                                                           [FAILED]
[root@localhost ~]# ldapsearch -d 1
ldap_create
ldap_pvt_sasl_getmech
ldap_search
put_filter: "(objectclass=*)"
put_filter: simple
put_simple_filter: "objectclass=*"
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap:389
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 192.168.1.128:389
ldap_connect_timeout: fd: 3 tm: -1 async: 0
ldap_close_socket: 3
ldap_perror
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

20

 Консоль:
[root@localhost ~]# slaptest -f /etc/openldap/slapd.conf
WARNING: No dynamic config support for database sql.
backend_startup_one: bi_db_open failed! (1)
slap_startup failed (test would succeed using the -u switch)

21

Я сейчас иду по твоим шагам и что то не пойму В хавтушке написано сделать

 Консоль:
psql pg_ldap  < backsql_create.sql

Как ты это сделал? Просто сам долго бьюсь с openldap и пока глухо. А очень надо
Тестовая система у меня RHEL 5.5 Так что должно все быть одинаково

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

22

 Консоль:

su - postgres
cd /usr/share/doc/openldap-servers-sql/rdb.../pgsql/
psql pg_ldap  < backsql_create.sql

23

thexf пишет:

WARNING: No dynamic config support for database sql.

смотрите опции сборки рпм по поводу этого

24

пакеты openldap-servers и openldap-servers-sql из репов.

25

Решение:

 Консоль:
$ yum install postgresql-* openldap-servers-sql openldap-clients
$ su - postgres
$ initdb -D /var/lib/pgsql/data
$ postmaster -D /var/lib/pgsql/data &
$ exit

$ cat /etc/odbc.ini
 Консоль:
[ODBC Data Sources]
PgSQL=PostgreSQL
[PgSQL]
Driver=/usr/lib/psqlodbc.so
Description=Connection to LDAP/Postgresql
Servername=localhost
Port=5432
Protocol=6.4
FetchBufferSiza=99
Username=test
Password=test
Database=pg_ldap
ReadOnly=no
Debug=1
CommLog=1
[ODBC]
InstallDir=/usr/lib/

$ cat /etc/odbcinst.ini

 Консоль:
[PostgreSQL]
Description     = ODBC for PostgreSQL
Driver          = /usr/lib/psqlodbc.so
FileUsage       = 1

 Консоль:
$ cd /usr/share/doc/openldap-servers-sql-2.3.43/rdbms_depend/pgsql
$ cp * /etc/openldap/            #в одну из этих директорий
$ cp * /var/lib/pgsql/data        #в какую еще не определил.

$ cat /etc/openldap/slapd.conf

 Консоль:
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/samba.schema
access to *
        by self write
        by * read
access to * by dn="cn=root,dc=example,dc=com" write         
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
modulepath      /usr/lib/openldap
moduleload      back_sql.la                     
database        sql
suffix         "dc=example,dc=com"
rootdn         "cn=root,dc=example,dc=com"
rootpw          secret
dbname          PgSQL
dbuser          test
dbpasswd        test
insentry_query  "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"
upper_func      "upper"
strcast_func    "text"
concat_pattern  "?||?"
has_ldapinfo_dn_ru      no         
lastmod off

 Консоль:
$ su - postgres
$ cd /var/lib/pgsql/data
$ createdb pg_ldap
$ createuser --no-createdb --no-createrole --no-adduser --password test

Указать пароль test
 Консоль:
$ psql -d pg_ldap < backsql_create.sql
$ psql -d pg_ldap < testdb_create.sql
$ psql -d pg_ldap < testdb_metadata.sql
$ psql -d pg_ldap < testdb_data.sql
$ psql -d pg_ldap -c “GRANT ALL ON ldap_attr_mappings,ldap_entries,ldap_entry_objclasses,ldap_oc_mappings,referrals TO test;”
$ psql -d pg_ldap -c “GRANT ALL ON ldap_attr_mappings_id_seq,ldap_entries_id_seq,ldap_oc_mappings_id_seq,referrals_id_seq TO test;”
$ psql -d pg_ldap -c “GRANT ALL ON authors_docs,documents,institutes,persons,phones TO test;”
$ psql -d pg_ldap -c “GRANT ALL ON documents_id_seq,institutes_id_seq,persons_id_seq,phones_id_seq TO test;”
$ exit
$ /etc/init.d/ldap start
$ ldapsearch -x -h localhost -b "dc=example,dc=com" "(objectClass=*)"
$ echo ‘dn: cn=Test Entry,dc=example,dc=com
objectClass: inetOrgPerson
cn: Test Entry
sn: Entry
givenName: Test’>1.ldif
$ ldapadd -x -h localhost -D “cn=root,dc=example,dc=com” -w secret -f 1.ldif