Chinaunix首页 | 论坛 | 博客
  • 博客访问: 811003
  • 博文数量: 274
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 862
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-24 15:31
个人简介

不合格的程序猿

文章分类

全部博文(274)

文章存档

2019年(3)

2018年(1)

2017年(4)

2016年(160)

2015年(106)

我的朋友

分类: LINUX

2016-01-21 15:40:02

ldap其实就是一个数据库,不是数据库怎么存放资料呢?不过跟我们平常的关系数据库有所不同。关系数据库是有一张一张的二维表格来存放数据的。

ldap类似我们的dns系统,是树状的。用节点来存放数据。当然一个树枝可以有n个节点,每个节点上存放的数据,都是以key => value的形式。

就像我们的dns系统。 .是根,下面是com,orgnetcn等等一些树枝,这些树枝下面还有abc.com, bcd.com等等树枝。在每个树枝下面都可以放节点,

其实就是域名下面的主机:www,ftp,mail等等。所有的这些内容,组成了一个dns树,在 ldap里面叫数据库。这下应该很形象了吧。

 

下面说说我的ldap的实现。

1、安装Berkeley DB 4.7.25

先去把berkeley-DB的源代码拉过来() ,我的是db-4.7.25.tar.gzopenldap需要这东西,这东西其实也没什么不好的,所以我就把它装到/usr/local/BerkeleyDB下去了。

# tar xvf db-4.7.25.tar.gz

cd db_4.7.25

cd build_unix/

./dist/configure -prefix=/usr/local/BerkeleyDB

make

make install

                                    

注意:安装完成后把执行

 cp /usr/local/BerkeleyDB/include/* /usr/include/

  cp /usr/local/BerkeleyDB/lib/* /usr/lib/

这样为你在下面编译OPENLDAP就不容易出错

2、安装openldap-2.4.15(我下载的是openldap-2.4.15.tgz

       tar xvf openldap-2.4.15.tgz

       cd openldap-2.4.15/

      ./configure --prefix=/usr/local/openldap

       make depend

      make

      make install

3、配置文件/usr/local/openldap/etc/openldap/slapd.conf

我的配置文件看起来应该像下面这样:

#

# See slapd.conf(5) for details on configuration options.

# This file should NOT be world readable.

#

include           /usr/local/openldap/etc/openldap/schema/core.schema

include           /usr/local/openldap/etc/openldap/schema/cosine.schema

include           /usr/local/openldap/etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.

 

# 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/openldap/var/run/slapd.pid

argsfile    /usr/local/openldap/var/run/slapd.args

 

#######################################################################

# BDB database definitions

#######################################################################

 

database  bdb

suffix             "dc=example,dc=com"

rootdn            "cn=Manager,dc=example,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/openldap/var/openldap-data

# Indices to maintain

index       objectClass     eq

 

配置文件没什么好解释的了吧,主要是我配置了一个数据库"dc=cz8,dc=net",如果需要,还可以配置多个数据库,每个都是以database开始的。具体的方法看admin guide。(一般说来,一个公司用一个数据库)

 

 可以启动ldap服务了!

 # cd /usr/local/openldap/libexec

    # ./slapd

 

  接下来的事情就是向数据库添加数据。ldap不支持sql,所以要用ldapadd这个程序来添加,添加的时候要用一个ldif文件,把要添加的东西写在里面,ldif的格式在admin guide里面有说明,我在这里只是简要说一下。

 

首先要添加根,这一步是必要的,不然任何数据都添加不进去。我们编辑一个test.ldif文件:

dn: dc=example,dc=com

objectClass: dcObject

objectClass: organization

dc: example

o: Example Company

 

dn: cn=Manager,dc=example,dc=com

objectClass: organizationalRole

objectClass: top

cn: Manager

执行命令:

# ldapadd -x -D "cn=manager, dc=example,dc=com" -w secret -f test.ldif
导入组织信息和组织角色 

我在执行此命令的时候,出错:ldapadd: invalid option -x,把-x去掉就可以了。

好了,用JXplorer进入就可以管理我们的openLdap

阅读(944) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~