基于Linux的目录服务实现

幺妹608

幺妹608

2016-01-29 19:51

基于Linux的目录服务实现,基于Linux的目录服务实现
       基于Linux的目录服务实现
  · 魏星 王舒晟·CPCW
  
  摘要:
  
   本文的目的是通过使用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
展开更多 50%)
分享

猜你喜欢

基于Linux的目录服务实现

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux的目录服务实现

Linux系统快速实现基于LDAP协议目录服务

电脑入门
Linux系统快速实现基于LDAP协议目录服务

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于Linux操作系统实现的传真系统

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux操作系统实现的传真系统

基于Linux系统服务器优化及安全配置

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux系统服务器优化及安全配置

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux目录切换技巧

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux目录切换技巧

Linux服务器集群系统实现方案解析

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux服务器集群系统实现方案解析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Rs.open sql,conn,A,B 的A、B各代表什么?

Rs.open sql,conn,A,B 的A、B各代表什么?

Linux的常用网络命令

Linux的常用网络命令
下拉加载更多内容 ↓