基于Linux操作系统的目录服务的实现( 二 )


1.安装Openldap-1.2.7-2.rpm软件包
如果不是使用的RedHat 6.1直接进行系统安装 , 可以单独使用管理器rpm进行独立安装 , 其格式为:

rpm - i openldap-1.2.7-2.rpm

rpm - i openldap-devel-1.2.7-2.rpm

2.相关文件
安装完毕后 , 相应的执行文件主要有:
/usr/sbin/slapd是单独运行的LDAP看守进程 , 它监听客户端请求 , 端口号一般是389 。
/usr/sbin/slurpd是单独运行的LDAP更新和复制进程 , 它能够把本地数据库的变化通知相关服务器进行更新 。
/usr/sbin/ldifldbm、/usr/sbin/ldbmcat等将LDIF(LDAP Directory Interchange Format)文件(实际是纯文本形式的文件)转化为gdbm形式的二进制数据文件以及相关的工具 。
/usr/bin/ldapsearch、/usr/bin/ldapdelete、/usr/bin/ldapmodify、/usr/bin/ud等是LDAP的客户端软件 , 能够完成对目录的搜索、添加、修改、删除等功能 。
生成的配置文件在/etc/openldap目录下 , 主要的配置文件有:
slapd.conf是slapd和slurpd的配置文件 , 其一般形式如下:
【基于Linux操作系统的目录服务的实现】defaultaccess read

access to attr=userpassWord by self write by * compare

access to attr=mail by self write by * read;

include /etc/openldap/slapd.at.conf

include /etc/openldap/slapd.oc.conf

scheMacheck off

#referral ldap://sunshine.mccc.net

pidfile /var/run/slapd.pid

argsfile /var/run/slapd.args

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

# ldbm database definitions

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

database ldbm

#suffix "dc=your-domain, dc=com"

#suffix "o=Your Organization Name, c=US"

suffix "o=mccc, c=US"

directory /usr/tmp

rootdn "cn=root, o=mccc, c=US"

rootpw secret

#replica host=zx.mccc.net:389;
binddn="ou=people, o=mccc, c=US" bindmethod=simple
对这个配置文件的关键修改是对suffix后缀为本地的组织形式 , 可以按照域名的形式 , 也可以按照组织模式 。其中的rootdn定义了本地目录树的根 , rootpw即是相对于本目录树的管理员口令 , 缺省是使用的明文为“secret” 。其中的replica指定备份目录服务器的地址 , 如果是备份服务器则不需要replica配置项 , 而是添加udpatedn=主目录服务器的地址 , 同时指定referral为主目录服务器 。同时 , 缺省的目录数据是以ldbm形式(Linux中实际gdbm格式)存放在/usr/tmp目录中 。Access定义了对目录信息的访问信息 , 它是基于条目的 , 即用户自己可以通过输入自己的口令修改自己的数据 , 其口令存放在自己的口令域(userpassWord)中 。
ldap.conf是本地系统LDAP客户的缺省配置 , 启动slapd后可以使用客户端软件使用ldap.conf的信息作为缺省信息 。根据我们的具体情况 , 将其修改为如下形式:
BASE O=mccc , C=US

HOST sunshine.mccc.net
3.生成目录数据
生成数据文件的方法:
编辑LDIF文件
LDIF文件是文本文件的形式 , 例如为Windows的消息簿提供一个目录格式可为如下形式:

dn: o=mccc,c=US

o: mccc

objectclass: organization

dn: cn=test,o=mccc,c=US

cn: test

cn: 测试中文

mail: testmail@mccc.net

othermailbox: testmailother@mccc.com

givenname: givenname

sn: test sn

surname: surname

st: st

c: china

co: co

o: mccc

ou: ou

url: http://sunshine.mccc.net

homephone: homephone

homepostaladdress: homepostaladdress

facsimiletelephonenumber: facsimiletelephonenumber

otherfacsimiletelephonenumber: otherfacsimiletelephonenumber

Officefax: officefax

mobile: mobile;

推荐阅读