回忆前面所学的章节,我们发现其实目录可以被理解成是一种为查询、浏览或搜索的数据库,但数据库又分为了目录数据库和关系数据库,目录数据库主要用于存储较小的信息(如姓名、电话、主机名等),同时具有很好的读性能,但在写性能方面比较差,所以不适合存放那些需要经常修改的数据。
目录服务则是由目录数据库和一套能够访问和处理数据库信息的协议组成的服务协议,用于集中的管理主机帐号密码,员工名字等数据,大大的提升了管理工作效率。轻量级目录访问协议LDAP(Lightweight Directory Access Protocol)是在目录访问协议X.500的基础上研发的,主要的优势是:
X.500目录协议功能非常臃肿,消耗大量资源,无法做到快速查询且不支持TCP/IP协议网络。
LDAP采用树状结构存储数据(类似于前面学习的DNS服务程序),用于在IP网络层面实现对分布式目录的访问和管理操作,条目是LDAP协议中最基本的元素,可以想象成字典中的单词或者数据库中的记录,通常对LDAP服务程序的添加、删除、更改、搜索都是以条目为基本对象的。
dn:每个条目的唯一标识符,如上图中linuxprobe的dn值是:
cn=linuxprobe,ou=marketing,ou=people,dc=mydomain,dc=org
rdn:一般为dn值中最左侧的部分,如上图中linuxprobe的rdn值是:
cn=linuxprobe
base DN:此为基准DN值,表示顶层的根部,上图中的base DN值是:
dc=mydomain,dc=org
而每个条目可以有多个属性(如姓名、地址、电话等),每个属性中会保存着对象名称与对应值,LDAP已经为运维人员对常见的对象定义了属性,其中有:
属性名称 | 属性别名 | 语法 | 描述 | 值(举例) |
commonName | cn | Directory String | 名字 | sean |
surname | sn | Directory String | 姓氏 | Chow |
organizationalUnitName | ou | Directory String | 单位(部门)名称 | IT_SECTION |
organization | o | Directory String | 组织(公司)名称 | linuxprobe |
telephoneNumber | Telephone Number | 电话号码 | 911 | |
objectClass | 内置属性 | organizationalPerson |
X.500 他有个致命的缺点,就是不支持tcp/ip协议,这就好比说我们买了个手机,但是这个手机不能联网。所以他就被替代掉了,就是我们的openldap 目录服务,什么是目录服务呢,我们可以把他比作一个数据库,他可以保存我们的文件,图片等等。
openldap保存的文件有两个特点
1:短小 (姓名、性别、电话号码等短小的)
2:读取次数多
优势就是我们使用openldap有两个好处。
1.我们只要在一台服务器上设置好账户和密码,马上我们就可以在1000多台机器都可以来登录了。
2.第二个就是我们要修改一下这个账户和密码的话也只需要修改服务器上的就可以了,马上就会做同步。
但是我们会遇到重名的情况,所以我们有一个标识,是这样的,就像上面树状图,我们把最上面比作中国,就是中国北京市海淀区永泰中路XXX,这样描述的话就不会重了,就是一个人了。至于另一支的话比如说你既然后海淀区那么就有朝阳区,或者说比如公司里面分为技术部财务部后勤等等来具体限定信息。
那么这么多东西是不需要我们自己写的,系统已经有模板了,我们使用两个命令就可以了。
第一个叫做idapadd命令,就是导入模板的意思,将我们某个模板的内容导入添加到系统的操作
第二个是ldapmodify,用来修改模板,将刚才添加的模板修改为合适你的。
OpenLdap是基于LDAP协议的开源程序,它的程序名称叫做slapd,本次实验需要用到两台主机
主机名称 | 操作系统 | IP地址 |
LDAP服务端 (instructor.linuxprobe.com) |
红帽RHEL7操作系统 | 192.168.10.10 |
LDAP客户端 | 红帽RHEL7操作系统 | 192.168.10.20 |
Linux新手随手笔记2.8-使用OpenLDAP部署目录服务
原文:https://www.cnblogs.com/hshyx/p/10875995.html