我在Centos7上从头开始安装openldap
我按照openldap.org网站http://www.openldap.org/doc/admin24/quickstart.html
上的快速入门指南进行操作在第7步之前一切正常,我在一个没有问题的自定义目录中安装了openldap
下面是我跑的命令
cd /usr/local/src
mkdir openldap
cd openldap
cp /home/user/openldap/src/* . //copied everything in the tar ball to the directory
yum install gcc openssl libdb-devel libtool-ltdl-devel.x86_64 openssl-devel.x86_64 cyrus-sasl-devel.x86_64
//yum installed every required package, including devel package for make
./configure --prefix=/usr/local/src/openldap-install //configure to install in custom location
make depend
make
make test //all successful
make install
然后我尝试按照步骤8,编辑slapd.ldif放入我自己的域,dc = adomain,dc = com,在我的情况下,在/ usr / local / src / openldap-install / etc /的OpenLDAP / slapd.ldif
然后我将/ usr / local / src / openldap-install / sbin /目录添加到PATH环境中,方法是在profile.d目录中插入openldap_path.sh,验证它是否有效。
然后我按照第9步(我按root运行所有内容)
slapadd -F / usr / local / etc / cn = config -l /usr/local/etc/openldap/slapd.ldif
但它返回"可用的数据库不允许使用slapadd新服务器"
我不明白,我不是在迁移(正如其他一些stackoverflow帖子中所建议的那样),它是一个全新的服务器,但它不允许我继续。
任何帮助都会受到赞赏,我只是不知道接下来该做什么。
@EJP
文件如下
#
# See slapd-config(5) for details on configuration options.
# This file should NOT be world readable.
#
dn: cn=config
objectClass: olcGlobal
cn: config
#
#
# Define global ACLs to disable default read access.
#
olcArgsFile: /usr/local/src/openldap-install/var/run/slapd.args
olcPidFile: /usr/local/src/openldap-install/var/run/slapd.pid
#
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#olcReferral: ldap://root.openldap.org
#
# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 64-bit encryption for simple bind
#olcSecurity: ssf=1 update_ssf=112 simple_bind=64
#
# Load dynamic backend modules:
#
#dn: cn=module,cn=config
#objectClass: olcModuleList
#cn: module
#olcModulepath: /usr/local/src/openldap-install/libexec/openldap
#olcModuleload: back_bdb.la
#olcModuleload: back_hdb.la
#olcModuleload: back_ldap.la
#olcModuleload: back_passwd.la
#olcModuleload: back_shell.la
dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema
include: file:///usr/local/src/openldap-install/etc/openldap/schema/core.ldif
# Frontend settings
#
dn: olcDatabase=frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: frontend
#
# Sample global access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
#
#olcAccess: to dn.base="" by * read
#olcAccess: to dn.base="cn=Subschema" by * read
#olcAccess: to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!
#
#######################################################################
# LMDB database definitions
#######################################################################
#
dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: mdb
**olcSuffix: dc=ldap,dc=domain,dc=com**
**olcRootDN: cn=Manager,dc=ldap,dc=domain,dc=com**
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd-config(5) for details.
# Use of strong authentication encouraged.
**olcRootPW: {SSHA}strong**
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
**olcDbDirectory: /usr/local/src/openldap-install/var/openldap-data**
# Indices to maintain
olcDbIndex: objectClass eq
仅从slapd.ldif.default文件中更改了最后几行
及以下是ls -R
输出的安装路径中的文件树.:
bin etc include lib libexec sbin share var
./bin:
ldapadd ldapdelete ldapmodify ldappasswd ldapurl
ldapcompare ldapexop ldapmodrdn ldapsearch ldapwhoami
./etc:
openldap
./etc/openldap:
ldap.conf schema slapd.conf.default slapd.ldif.default
ldap.conf.default slapd.conf slapd.ldif
./etc/openldap/schema:
collective.ldif cosine.schema java.ldif openldap.schema
collective.schema duaconf.ldif java.schema pmi.ldif
corba.ldif duaconf.schema misc.ldif pmi.schema
corba.schema dyngroup.ldif misc.schema ppolicy.ldif
core.ldif dyngroup.schema nis.ldif ppolicy.schema
core.schema inetorgperson.ldif nis.schema README
cosine.ldif inetorgperson.schema openldap.ldif
./include:
lber.h ldap_cdefs.h ldap.h ldap_utf8.h slapi-plugin.h
lber_types.h ldap_features.h ldap_schema.h ldif.h
./lib:
liblber-2.4.so.2 libldap-2.4.so.2 libldap_r-2.4.so.2.10.7
liblber-2.4.so.2.10.7 libldap-2.4.so.2.10.7 libldap_r.a
liblber.a libldap.a libldap_r.la
liblber.la libldap.la libldap_r.so
liblber.so libldap_r-2.4.so.2 libldap.so
./libexec:
slapd
./sbin:
slapacl slapauth slapdn slappasswd slaptest
slapadd slapcat slapindex slapschema
./share:
man
./share/man:
man1 man3 man5 man8
./share/man/man1:
ldapadd.1 ldapdelete.1 ldapmodify.1 ldappasswd.1 ldapurl.1
ldapcompare.1 ldapexop.1 ldapmodrdn.1 ldapsearch.1 ldapwhoami.1
./share/man/man3:
ber_alloc_t.3 ldap_free_urldesc.3
blablablablabla
blablablablabla
blablablablabla
./share/man/man5:
ldap.conf.5 slapd-mdb.5 slapd-sql.5 slapo-ppolicy.5
blablablablabla
blablablablabla
blablablablabla
./share/man/man8:
blablablablabla
blablablablabla
./var:
run
./var/run:
修改
@EJP我有点明白你的意思。你是说默认的LDIF文件实际上是cn = config数据库?
我差不多放弃,1周的时间没有得到ldap服务器启动。我不知道问题是什么,也许清理我的一些概念实际上可以解决这里的情况?
谢谢EJP对我的耐心,我知道我错过了一些非常微不足道的东西,但相信我,我已经在互联网上挖了几天(和书店一天)没有找到明确的答案。如果你可以通过回答我的问题或者你自己的解释向我澄清一些概念,或者只提供一个我可以做slapadd的虚拟ldif文件然后我可以弄清楚什么是错误的,那真的很棒。
我将我的困难归咎于我认为做得不好的openldap指导文档:
答案 0 :(得分:0)
原来这个答案解决了问题Openldap naming context issue with Apache directory studio?。
我想我很欣赏人们可以回答我的问题的某些细节或提供一个答案的例子。并非所有人都通过措辞解释来学习,有些人通过实例和逆向工程学习。阅读手册,只有在你不理解时才提出问题,我认为这是一个先前的陈述,而且大多数人在实际提出任何问题之前已经过了那个阶段。
是的,我想我应该在serverfault上询问,因为stackoverflow更适合编程。
答案 1 :(得分:0)
当我遇到同样的错误时,我没有弄清楚为什么slapadd命令失败了。但是,如果你想要的是让你的LDAP服务器工作,我可以分享我所做的。
第1步:直接在slapd.conf文件中配置MDB。
安装OpenLDAP时,已创建/ usr / local / etc / openldap下的slapd.conf文件,并使用MDB数据库进行配置。您可以根据需要更改MDB设置。这是默认设置:
#######################################################################
# MDB database definitions
#######################################################################
database mdb
maxsize 1073741824
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /usr/local/var/openldap-data
# Indices to maintain
index objectClass eq
第2步:配置后启动slapd。 命令启动slapd:
/usr/local/libexec/slapd -d 1
如果您看到" slapd开始",则表示slapd已启动。
第3步:创建数据库条目。
您可以参考OpenLDAP Administrator guide中提供的流程:
1.创建一个entries.ldif文件,如下所示:
# Organization for Example Corporation
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: Example Corporation
description: The Example Corporation
# Organizational Role for Directory Manager
dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
2.使用ldapadd工具创建条目:
ldapadd -f entries.ldif -x -D "cn=Manager,dc=example,dc=com" -w secret
完成上面的3个步骤后,LDAP服务器就可以使用了。您可以添加DIT供您使用。
仅供参考,一个优秀的GUI客户端可以为您提供很多帮助。我使用了Jarek Gawor’s excellent LDAP Browser/Editor v2.8.2
希望这个答案可以帮助你或其他人。
答案 2 :(得分:-1)
您应该将默认的slapd.conf转换为新的slapd.d目录格式。在slapd.conf中添加配置数据库定义:
# before the first database definition
database config
# NOTE: the suffix is hardcoded as cn=config and
# MUST not have a suffix directive
# normal rules apply - rootdn can be anything you want
# but MUST be under cn=config
rootdn "cn=admin,cn=config"
# use any of the supported password formats e.g. {SSHA} etc
# or plaintext as shown
rootpw config
然后使用
转换它slaptest -f /usr/local/etc/openldap/slapd.conf -F /usr/local/etc/openldap/slapd.d
然后删除slapd.conf。然后,您可以使用slapadd继续配置。请查看Configuration Guide或http://www.zytrax.com/books/ldap/ch6/slapd-config.html。
希望这会对你有所帮助。