动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > Linux教程
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Linux教程 ]的信息

本月文章推荐
.Linux 指令篇:讯息传送与信件管理.
.新闻观察 Linux操作系统下KDE 4..
.Ubuntu Server版系统的用户安全优.
.vmware 配置实例-linux host + .
.Linux 网管 123 --- 第4章. 安装.
.Linux爱好者入门教程.
.Linux桌面系统提速七大法宝.
.Linux系统下history命令的记录如.
.如何才能让Linux运行两块以太网卡.
.RedHat 6.2 中文 TrueType 字体的.
.Redhat 7.x 中xinetd完全指南.
.在Linux Debian操作系统下成功安.
.Linux环境下实现组件返回消息的技.
.Linux FTP服务器和SVN服务器的详.
.打造Linux下超级安全的LAMP服务器.
.刀片服务器硬盘启动Linux独立安装.
.新手学堂:Linux操作系统下如何添.
.KDE 2.1安装及使用介绍.
.未来趋势分析:Linux有可能成为j.
.Linux系统下以模块方式安装卸载文.

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

文章类别:Linux教程 | 发表日期:2007-1-12 |


  本文的目的是通过使用Linux系统支持的应用软件包(openldap),快速实现基于LDAP协议的目录服务系统来支持Windows消息簿中的用户查询功能。作者从用户的观点介绍了目录服务的特点,并比较了其与通常使用的关系数据库在处理数据上的差别,作者只是普通的Linux的爱好者,尝试将所学到的一点Linux知识进行综合应用,希望对大家有所启发。

  关键字:目录、LDAP。

  如果需要开发一种提供公共信息查询的系统,如通过用户姓名能够获得该用户的邮件地址、家庭住址等信息,如Yahoo提供的People search服务和Windows OutLook中提供的消息簿功能。一般的设计方法可能是采用基于WEB的数据库设计方式,即前端使用浏览器而后端使用WEB服务器加上关系数据库。后端在Windows的典型实现可能是Windows NT + IIS + Acess数据库或者是SQL服务器,IIS和数据库之间通过ASP技术使用ODBC进行连接,达到通过填写表单查询数据的功能;后端在Linux系统的典型实现可能是Linux + Apache + Postgresql,Apache和数据库之间通过PHP3提供的函数进行连接。使用上述方法的缺点是后端关系数据库的引入导致系统整体的性能降低和系统的管理比较繁琐,因为需要不断的进行数据类型的验证和事务的完整性的确认;并且前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置在表一级而不是设置在记录一级。

  目录服务的推出主要是解决上述数据库中存在的问题。目录与关系数据库相似,是指具有描述性的基于属性的记录集合,但它的数据类型主要是字符型,为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax),而不是关系数据库提供的整数、浮点数、日期、货币等类型,同样也不提供象关系数据库中普遍包含的大量的函数,它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制,它的数据修改使用简单的锁定机制实现All-or-Nothing,它的目标是快速响应和大容量查询并且提供多目录服务器的信息复制功能。

  LDAP(Lightweight Directory Acess Protocol)是目录服务在TCP/IP上的实现(RFC 1777 V2版和RFC 2251 V3版)。它是对X500的目录协议的移植,但是简化了实现方法,所以称为轻量级的目录服务。在LDAP中目录是按照树型结构组织,目录由条目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有区别名DN(Distinguished Name)的属性(Attribute)集合,DN相当于关系数据库表中的关键字(Primary Key);属性由类型(Type)和多个值(Values)组成,相当于关系数据库中的域(FIEld)由域名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。LDAP协议集还规定了DN的命名方法、存取控制方法、搜索格式、复制方法、URL格式、开发接口等。

  Linux支持的LDAP服务器一般有Michigan大学开发的免费软件包和Openldap组织基于Michigan大学的开发包提供的Openldap免费软件发行包,其中Openldap发行包安装配置更加简单。RedHat 6.1 Linux发行版中就包含了Openldap软件包,该发行版可从计算机世界报信息服务中心得到,对LDAP的支持是Redhat6.1提供的一个重要扩展,(参见Redhat 6.1产品介绍),以下详细介绍在Linux中安装并配置Openldap的方法,以及使用该软件包为Windows Outlook中的帐号提供消息簿的后端。

  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的配置文件,其一般形式如下:

  

  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 
  
  otherpager: otherpager
  
  officepager: officepager
  
  pager: pager
  
  info: info
  
  title: title
  
  telephonenumber: telephonenumber
  
  l: location
  
  postaladdress: postaladdress
  
  streetaddress: streetaddress
  
  department: department
  
  comment: comment
  
  postalcode: postalcode
  
  physicaldeliveryofficename: physicaldeliveryofficename
  
  initials: initials
  
  conferenceinformation: conferenceinformation
  
  labeleduri: labeleduri
  
  manager: manager
  
  reports: reports 
  
  objectclass: organization

  其中的:后面的值中均可以填写中文信息,使用上述格式主要是为了方便在Windows 消息簿中对照用户的信息。


上一篇:在Linux系统下建立强大的FTP搜索引擎 人气:4557
下一篇:基于Linux的虚拟主机搭建 人气:6124
点击此处浏览全部Linux的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-16 乘风多用户PHP统计系统 v3.4
2008-5-16 轩溪下载系统 v3.78 build 0515
2008-5-16 普沙B2B 浙江省商贸网 v2.0
2008-5-16 asp抓蜘蛛的小程序 v1.0
2008-5-16 齐齐乐网私服发布站 仿haosf新版
2008-5-16 IssTech信息反馈系统 v1.0
2008-5-16 自由领域大头贴(js接口版) 修正版
2008-5-16 医院网站系统
2008-5-16 智拓-分类信息管理系统 v5.0
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報