http://blog.sina.com.cn/s/blog_6151984a0100ey3z.html
什么是目录服务?
目录服务就是按照树状存储信息的模式
目录服务的特点?目录服务与关系型数据库不同?
为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax)
常见的目录服务软件
LDAP
LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写
LDAP标准实际上是在X.500标准基础上产生的一个简化版本
LDAP特点
Server 用于存储数据
Client提供操作目录信息树的工具
这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前
它是基于X.500标准的, 与X.500不同,LDAP支持TCP/IP(即可以分布式部署)
LDAP存储这样的信息最为有用: 也就是数据需要从不同的地点读取,但是不需要经常更新:
Ldap的client /server结构
server |
/usr/sbin/slapd -u ldap -h ldap:/// |
client |
数据库操作client 用于对ldap server库进行操作 工具:ldapadd, ldapsearch |
实用client 用于将ldap server库在实际工作中使用 工具:radius+ldap, pam+ldap |
匿名 Ldapsearch –x -LLL |
基本认证 通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证 # ldapadd -x -D "cn=root,dc=otas,dc=cn" -W -f base.ldif -x就是simple authetication Enter LDAP Password: 输入admin123 adding new entry "dc=otas,dc=cn" adding new entry "ou=People,dc=otas,dc=cn" adding new entry "ou=Group,dc=otas,dc=cn" |
SASL Simple Authentication and Secure Layer LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证 |
DIT是一个主要进行读操作的数据库
条目是具有分辨名DN(Distinguished Name)的属性-值对(Attribute-value,简称AV)的集合
在目录树中怎么组织数据
cn=Fran Smith,ou=employees,dc=foobar,dc=com ------------ ----------------- 容器条目 BaseDN -------------------------------------------- DN |
基于cn(姓名) |
cn=Fran Smith,ou=employees,dc=foobar,dc=com (dn格式就是这么一大串) 最常见的CN是/etc/group转来的条目 |
基于uid(User ID) |
uid=fsmith,ou=employees,dc=foobar,dc=com 最常见的UID是/etc/passwd和/etc/shadow转来的条目 |
[root@vmmac migration]# ldapsearch -x -LLL "uid=mac*" dn: uid=mac,ou=People,dc=otas,dc=cn 唯一标适 uid: mac cn: mac CN=Common Name 为用户名或服务器名 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e2NyeXB0fSQxJGRTMFJoR1lwJHk0dkdKc1ByM3BlVmo4Z243dEhoQTA= shadowLastChange: 13697 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 500 gidNumber: 500 homeDirectory: /home/mac dn: uid=macg,ou=People,dc=otas,dc=cn uid: macg cn: macg objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e2NyeXB0fSQxJGxHdE9tTW9vJHR0TFhpYXc2Y1VJb0RyWU9xUlVDSzE= shadowLastChange: 14186 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 503 gidNumber: 503 homeDirectory: /home/macg |
商务型格式——以X.500格式表示的基准DN |
o="FooBar, Inc.", c=US |
Internet型格式——以公司的Internet 域名地址表示的基准DN) 是最常用的格式 |
dc=foobar, dc=com |
[root@vmmac migration]# cat passwd.ldif dn: uid=mac,ou=People,dc=otas,dc=cn uid: mac cn: mac objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}$1$dS0RhGYp$y4vGJsPr3peVj8gn7tHhA0 gidNumber: 500 homeDirectory: /home/mac |
dn: uid=fsmith, ou=employees, dc=foobar, dc=com 完整DN,包括在目录树中的完整路径 objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson objectclass: foobarPerson uid: fsmith givenname: Fran sn: Smith cn: Fran Smith cn: Frances Smith CN有多个值 你可能只知道她的名字叫Fran,但是对人力资源处的人来说她的正式名字叫做Frances。因为保存了她的两个名字 telephonenumber: 510-555-1234 roomnumber: 122G o: Foobar, Inc. mailRoutingAddress: [email protected] mailhost: mail.foobar.com userpassword: {crypt}3x1231v76T89N uidnumber: 1234 gidnumber: 1200 homedirectory: /home/fsmith loginshell: /usr/local/bin/bash |
dn: cn=test1,ou=Group,dc=otas,dc=cn objectClass: posixGroup objectClass: top cn: test1 userPassword:: e2NyeXB0fXg= gidNumber: 500 /etc/group |
dn: uid=test1,ou=People,dc=otas,dc=cn uid: test1 cn: test1 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e2NyeXB0fSQxJHpGR3drdUdlJFIyZ3BZTlh3QzVPaXFOck1CTGU2QjE= shadowLastChange: 14298 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 500 gidNumber: 500 homeDirectory: /home/test1 /etc/passwd /etc/shaddow |
user属于ou=People
group属于ou=Group
user的dn用uid打头:uid=news,ou=People,dc=otas,dc=cn
group的dn用cn打头:cn=news,ou=Group,dc=otas,dc=cn