RH423-4 LDAP的功能模型一

简介:

LDAP的功能模型

一、功能模块

功能模型主要是对这个目录服务进行操作

1、查找的功能

2、更新或者修改的功能

3、认证的功能

 

在命令行中如何使用这些方法进行操作

1、通过openldap-clients 这个包的安装使得有些命令可以进行操作

2、通过红帽的目录服务

最好还是使用openldap-clients的这,因为在很多的不同发行版的Linux都是通用的。

 

openldap-clients 都有些什么基本的操作命令

ldapsearch 在目录服务中进行搜索

ldapadd 经一个LDIF 文件更新到目录服务中

ldadmodify 修改一个已经存在在目录服务中的条目

ldappasswd ,ldapmodrdn,ldapdelete 等都是常用的操作命令

 

二、OpenLDAP Client 的配置

为什么要先进行配置以为如果我们不配置client服务, 那么每一次查询或者修改一些数据的时候都将是很麻烦的如

1、修改配置文件(/etc/openldap/ldap.conf)

[root@station2 dirsrv]# vim /etc/openldap/ldap.conf

BASE dc=station2,dc=example,dc=com

HOST station2.example.com                          

#添加以上两行为了在使用openldap的时候简化操作

2、如果想要在本个用户进行修改删除等操作还要对~/.ldaprc进行修改

[root@station2 ~]# vim .ldaprc

BINDDN cn=Directory Manager            

#这里说的就是使用这个超级用户用户进行操作

 

三、查询ldapsearch

1、导入测试用数据库

[root@station2 ~]# cp /usr/share/dirsrv/data/Example.ldif /root/example.ldif   

#Example.ldifredhatds服务器安装时自带

 

[root@station2 ~]#vi /root/example.ldif

:%s/dc=example,dc=com/dc=station2,dc=example,dc=com/gi

:%s/dc:\ example/dc: station2/gi

#将其相关数据改成自身ldap服务器数据

 

[root@station2 ~]# ldapadd -x -c -W -f Example.ldif

Enter LDAP Password:

adding new entry "dc=station2,dc=example,dc=com"

#导入example.ldif到数据库

 

2、使用ldapsearch查询数据匿名

[root@station2 ~]# ldapsearch -x "uid=zhangsan123"

# extended LDIF

#

# LDAPv3

# base <> with scope subtree

# filter: uid=zhangsan123

# requesting: ALL

# zhangsan123, People, station2.example.com

dn: uid=zhangsan123,ou=People,dc=station2,dc=example,dc=com

cn: zhangsam 123

sn: zhang

givenName: Emanuel

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

ou: Product Testing

ou: People

l: Santa Clara

uid: zhangsan123

telephoneNumber: +1 408 555 0933

facsimileTelephoneNumber: +1 408 555 9752

roomNumber: 3906

manager: uid=jwalker, ou=People, dc=station2,dc=example,dc=com

mail: zhangsan123@example.com

 

# search result

search: 2

result: 0 Success

 

# numResponses: 2

# numEntries: 1

不同参数的使用说明

-H url Use server at url        #这里的大写是加的URL路径如果是小写的那么就加主机名

-x Use simple, not SASL binds     #只是用简单的认证而没有经过加密。如上面的搜索的时候使用[root@station2 ~]# ldapsearch -x "uid=xduan"   这个时候使用匿名这个用户进行的搜索。

-D dn Bind using dn                   #指定DN的名字 

-W Prompt for simple bind password         #指定使用什么用户进行操作

-Z Try to use StartTLS; -ZZ requires it; for LDAPS: -H ldaps://server   #设定是否是用加密的机制

-L Less verbose LDIF; up to -LLL

-b dn Base DN in tree to start search from

-s scope Search scope: sub, one, or base

据-L使显示小的信息,而-LLL是显示更小的信息

[root@station2 ~]# ldapsearch -x "uid=zhangsan123" -LLL

dn: uid=zhangsan123,ou=People,dc=station2,dc=example,dc=com

cn: zhangsam 123

sn: zhang

givenName: Emanuel

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

ou: Product Testing

ou: People

l: Santa Clara

uid: zhangsan123

telephoneNumber: +1 408 555 0933

facsimileTelephoneNumber: +1 408 555 9752

roomNumber: 3906

manager: uid=jwalker, ou=People, dc=station2,dc=example,dc=com

mail: zhangsan123@example.com#

#这样的好处可已将这个文件导出来,然后进行修改,然后就可以导入到ldap数据库中

-b 要开始搜索的DN字段

-s:指搜索的范围一共有三种1sub:所有的都搜索包括子条目  2one 搜自己和自己的下一级下下级不可以搜索到  3base 只是搜索自己 ,不包含下一级

 

 3、采用运算符进行搜索

ldapsearch -x '(uid=burns)' mail   #只是所搜某一个关键字

 

LDAP的搜索也可以使用

= Exact match

>= Greater than or equal to     #这里是根据字符串来搜索的

<= Less than or equal to

~= Approximate match                 #可以使用约等于

LDAP同样也可以逻辑运算

NOT:                (!(age>=21))

AND:                (&(sn=jones)(o=IBM))

OR:                  (|(sn=laurel)(sn=hardy))

实例:

root@station2 ~]# ldapsearch -x "(|(uid=zhangsan123)(uid=jvedder))"

# extended LDIF

#

# LDAPv3

# base <> with scope subtree

# filter: (|(uid=zhangsan123)(uid=jvedder))

# requesting: ALL

#

# jvedder, People, station2.example.com

dn: uid=jvedder, ou=People, dc=station2,dc=example,dc=com

cn: Jeff Vedder

sn: Vedder

givenName: Jeff

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

ou: Product Development

ou: People

l: Santa Clara

uid: jvedder

mail: jvedder@example.com

telephoneNumber: +1 408 555 4668

facsimileTelephoneNumber: +1 408 555 0111

roomNumber: 3445

manager: uid=bparker, ou=People, dc=station2,dc=example,dc=com

 

# zhangsan123, People, station2.example.com

dn: uid=zhangsan123,ou=People,dc=station2,dc=example,dc=com

cn: zhangsam 123

sn: zhang

givenName: Emanuel

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

ou: Product Testing

ou: People

l: Santa Clara

uid: zhangsan123

telephoneNumber: +1 408 555 0933

facsimileTelephoneNumber: +1 408 555 9752

roomNumber: 3906

manager: uid=jwalker, ou=People, dc=station2,dc=example,dc=com

mail: zhangsan123@example.com

 

# search result

search: 2

result: 0 Success

 

# numResponses: 3

# numEntries: 2


本文转自netsword 51CTO博客,原文链接:http://blog.51cto.com/netsword/541775
相关文章
CentOS8配置Postfix开启SASL找不到服务
CentOS8配置Postfix开启SASL找不到服务
CentOS8配置Postfix开启SASL找不到服务
|
开发工具 数据安全/隐私保护 网络安全
|
Shell 数据安全/隐私保护 Unix
|
数据安全/隐私保护