📄 1878.html
字号:
<br>
安装到系统中的文件 <br>
<br>
概述 <br>
LDAP(Lightweight Directory Access Protocol)是用来访问信息服务的标准协议。这个协议是用在Internet传输协议上,如:TCP,能够访问单独的目录服务或X.500目录。 <br>
<br>
注意事项 <br>
<br>
下面所有的命令都是Unix兼容的命令。 <br>
源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。 <br>
安装在RedHat Linux 6.1下测试通过。 <br>
要用“root”用户进行安装。 <br>
OpenLDAP的版本号是1_2_8。 <br>
<br>
软件包的来源 <br>
OpenLDAP的主页:http://www.openldap.org/。 <br>
<br>
下载:openldap-1_2_8.tgz。 <br>
<br>
安装软件包需要注意的问题 <br>
最好在编译前和编译后都做一张系统中所有文件的列表,然后用“diff”命令去比较它们,找出其中的差别并知道到底把软件安装在哪里。只要简单地在编译之前运行一下命令“find /* >ldap1”,在编译和安装完软件之后运行命令“find /* > ldap2”,最后用命令 “diff ldap1 ldap2 > ldap”找出变化。 <br>
<br>
编译 <br>
把软件包(tar.gz)解压缩: <br>
<br>
[root@deep]# cp openldap-version.tgz /var/tmp <br>
[root@deep]# cd /var/tmp/ <br>
[root@deep]# tar xzpf openldap-version.tgz <br>
<br>
编译和优化 <br>
转到OpenLDAP的新目录下。 <br>
<br>
编辑“string.h”文件(vi +52 include/ac/string.h),删掉这些几行: <br>
<br>
#else <br>
/* some systems have strdup(), but fail to declare it */ <br>
extern char *(strdup)(); <br>
<br>
上面的这几行对Linux系统是没有用的必须删掉。 <br>
<br>
下面设置编译器的编译参数: <br>
<br>
CC="egcs" <br>
CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame- <br>
pointer -fno-exceptions" <br>
./configure <br>
--prefix=/usr <br>
--libexecdir=/usr/sbin <br>
--localstatedir=/var/run <br>
--sysconfdir=/etc <br>
--enable-shared <br>
--with-gnu-ld <br>
<br>
这些编译参数告诉编译器如何编译OpenLDAP: <br>
<br>
l 编译共享库 <br>
l 假定C编译器使用GNU ld <br>
<br>
开始编译: <br>
<br>
[root@deep]# make depend <br>
[root@deep]# make <br>
[root@deep]# cd tests/ <br>
[root@deep]# make <br>
[root@deep]# cd .. <br>
[root@deep]# make install <br>
<br>
“make depend” 命令编译必要的相关文件,“make”把源文件编译成可执行的二进制文件。“make install”把二进制文件和相关的配置文件安装到相应的目录中去。在“test”目录下的“make”命令在安装LDAP服务器之前进行一些必要的测试保证软件安装完成后能正常运行。如何测试失败在继续安装之前先要解决这些问题。 <br>
<br>
[root@deep]# install -d -m 700 /var/ldap <br>
[root@deep]# echo localhost > /etc/openldap/ldapserver <br>
[root@deep]# strip /usr/lib/liblber.so.1.0.0 <br>
[root@deep]# strip /usr/lib/libldap.so.1.0.0 <br>
[root@deep]# strip /usr/lib/libldap.a <br>
[root@deep]# strip /usr/lib/liblber.a <br>
[root@deep]# strip /usr/sbin/in.xfingerd <br>
[root@deep]# strip /usr/sbin/go500 <br>
[root@deep]# strip /usr/sbin/go500gw <br>
[root@deep]# strip /usr/sbin/mail500 <br>
[root@deep]# strip /usr/sbin/rp500 <br>
[root@deep]# strip /usr/sbin/fax500 <br>
[root@deep]# strip /usr/sbin/rcpt500 <br>
[root@deep]# strip /usr/sbin/slapd <br>
[root@deep]# strip /usr/sbin/ldif2ldbm <br>
[root@deep]# strip /usr/sbin/ldif2index <br>
[root@deep]# strip /usr/sbin/ldif2id2entry <br>
[root@deep]# strip /usr/sbin/ldif2id2children <br>
[root@deep]# strip /usr/sbin/ldbmcat <br>
[root@deep]# strip /usr/sbin/ldif <br>
[root@deep]# strip /usr/sbin/centipede <br>
[root@deep]# strip /usr/sbin/ldbmtest <br>
[root@deep]# strip /usr/sbin/slurpd <br>
[root@deep]# strip /usr/bin/ud <br>
[root@deep]# strip /usr/bin/ldapadd <br>
[root@deep]# strip /usr/bin/ldapsearch <br>
[root@deep]# strip /usr/bin/ldapmodify <br>
[root@deep]# strip /usr/bin/ldapmodrdn <br>
[root@deep]# strip /usr/bin/ldappasswd <br>
[root@deep]# strip /usr/bin/ldapdelete <br>
<br>
上面的“install”命令在“/var”目录下创建一个名为“ldap”的新目录并且把它的属性设成只能被超级用户“root”读、写和执行。 <br>
<br>
“strip”命令清除目标文件中所有的符号信息,这样可执行文件就会更小,能够提高一点程序的性能。 <br>
<br>
清除不必要的文件 <br>
用下面的命令删除不必要的文件: <br>
<br>
[root@deep]# cd /var/tmp <br>
[root@deep]# rm -rf ldap openldap-version.tgz <br>
<br>
“rm”命令删除所有编译和安装OpenLDAP所需要的源程序,并且把“/var/tmp”目录下的OpenLDAP软件的压缩包删除掉。 <br>
<br>
配置 <br>
可以到这去下载“floppy.tgz”文件:http: //pages.infinit.net/lotus1/doc/opti/floppy.tgz。把“floppy.tgz”文件解开之后,可以在相应的目录下发现我们在这本书中介绍的所有软件的配置文件。这样就没有必要手工重新生成这些文件,或者用拷贝粘贴的方法把它们粘贴到配置文件中去。不管是打算自己动手生成配置文件还是拷贝现成的,你都要学会自己修改配置文件并且把配置文件拷贝到正确的目录下。下面将具体说明。 <br>
<br>
为了运行OpenLDAP,必须创建或者把下面的文件拷贝到相应的目录下: <br>
<br>
l 把“slapd.conf”文件拷贝到“/etc/openldap”目录下 <br>
l 把“ldap”文件拷贝到“/etc/rc.d/init.d”目录下 <br>
<br>
可以把“floppy.tgz”解压之后,找到上面列出来的文件,并拷贝到“/etc/ssh”目录下,或者用拷贝粘贴的方法从本书中直接粘贴出。 <br>
<br>
配置“/etc/ldap/slapd.conf”文件 <br>
“/etc/openldap/slapd.conf”文件是LDAP服务器最重要的配置文件,配置权限、口令、数据库类型和数据库位置等等。 <br>
<br>
编辑“slap.conf”文件(vi /etc/openldap/slapd.conf)加入: <br>
<br>
# <br>
# See slapd.conf(5) for details on configuration options. <br>
# This file should NOT be world readable. <br>
# <br>
include /etc/openldap/slapd.at.conf <br>
include /etc/openldap/slapd.oc.conf <br>
schemacheck off <br>
#referral ldap://ldap.itd.umich.edu <br>
pidfile /var/run/slapd.pid <br>
argsfile /var/run/slapd.args <br>
####################################################################### <br>
# ldbm database definitions <br>
####################################################################### <br>
database ldbm <br>
suffix "o=openarch, c=com" <br>
directory /var/ldap <br>
rootdn "cn=admin, o=openarch, c=com" <br>
rootpw secret <br>
# cleartext passwords, especially for the rootdn, should <br>
# be avoid. See slapd.conf(5) for details. <br>
# ldbm indexed attribute definitions <br>
index cn,sn,uid <br>
index objectclass pres,eq <br>
index default none <br>
# ldbm access control definitions <br>
defaultaccess read <br>
access to attr=userpassword <br>
by self write <br>
by dn="cn=admin, o=openarch, c=com" write <br>
by * compare <br>
<br>
下面解释一下上面配置文件中的一些设置: <br>
<br>
suffix “o=openarch, c=com” <br>
<br>
suffix(后缀)设置想要创建的子树的根的DN(distinguished name)。换句话说,就是表示数据库中到底放些什么。 <br>
<br>
directory /var/ldap <br>
<br>
设置LDAP数据库和索引文件所在的目录。必须设置为“/var/ldap”因为我们在安装阶段已经指定了LDAP的后台数据库。 <br>
<br>
rootdn “cn=admin, o=openarch, c=com” <br>
<br>
设置管理LDAP目录的超级用户的DN。这个用户名(admin)并不要出现在“/etc/passwd”文件里。 <br>
<br>
rootpw secret <br>
<br>
设置这个数据库的超级用户的口令验证方式。也就是上面“rootdn”设置的用户的口令。千万不要用明文进行口令验证,一定要用加密的口令。 <br>
<br>
index cn,sn,uid | index objectclass pres,eq | index default none <br>
<br>
这三句设置在数据库中创建和维护怎样的索引。“index cn,sn,uid)为cn、sn和uid属性创建和维护索引, “index objectclass pres,eq”为objectclass属性创建相等索引(equality indexes), “index default none”表示不为别的属性创建索引。查看用户手册可以得到更多的信息。 <br>
<br>
“slapd.conf”文件中的最后一部分是和LDAP目录的访问控制相关的。 <br>
<br>
defaultaccess read <br>
access to attr=userpassword <br>
by self write <br>
by dn="cn=admin, o=openarch, c=com" write <br>
by * compare <br>
<br>
这些设置对“o=openarch,c=com”子树中的所有项都是有效的。任何人都有读的权限,除了“userpasswd”属性拥有这一项的用户可以改变其它所有的属性。“userpassword”属性只能被admin修改,但是任何人都可以比较。查看用户手册可以得到更多的信息。 <br>
<br>
配置“/etc/rc.d/init.d/ldap”脚本文件 <br>
配置“/etc/rc.d/init.d/ldap”脚本文件用来启动和停止ldap服务。 <br>
<br>
创建“ldap”脚本文件(touch /etc/rc.d/init.d/ldap)并加入: <br>
<br>
#!/bin/sh <br>
# <br>
# ldap This shell script takes care of starting and stopping <br>
# ldap servers (slapd and slurpd). <br>
# <br>
# chkconfig: - 70 40 <br>
# description: LDAP stands for Lightweight Directory Access Protocol, used <br>
# for implementing the industry standard directory services. <br>
# processname: slapd <br>
# config: /etc/openldap/slapd.conf <br>
# pidfile: /var/run/slapd.pid <br>
# Source function library. <br>
. /etc/rc.d/init.d/functions <br>
# Source networking configuration. <br>
. /etc/sysconfig/network <br>
# Check that networking is up. <br>
[ ${NETWORKING} = "no" ] && exit 0 <br>
[ -f /usr/sbin/slapd ] || exit 0 <br>
[ -f /usr/sbin/slurpd ] || exit 0 <br>
RETVAL=0 <br>
# See how we were called. <br>
case "$1" in <br>
start) <br>
# Start daemons. <br>
echo -n "Starting ldap: " <br>
daemon slapd <br>
RETVAL=$? <br>
if [ $RETVAL -eq 0 ]; then <br>
if grep -q "^replogfile" /etc/openldap/slapd.conf; then <br>
daemon slurpd <br>
RETVAL=$? <br>
[ $RETVAL -eq 0 ] && pidof slurpd | cut -f 1 -d " " > /var/run/slurpd <br>
fi <br>
fi <br>
echo <br>
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ldap <br>
;; <br>
stop) <br>
# Stop daemons. <br>
echo -n "Shutting down ldap: " <br>
killproc slapd <br>
RETVAL=$? <br>
if [ $RETVAL -eq 0 ]; then <br>
if grep -q "^replogfile" /etc/openldap/slapd.conf; then <br>
killproc slurpd <br>
RETVAL=$? <br>
fi <br>
fi <br>
echo <br>
if [ $RETVAL -eq 0 ]; then <br>
rm -f /var/lock/subsys/ldap <br>
rm -f /var/run/slapd.args <br>
fi <br>
;; <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -