LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作

简介: LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作

一、OpenLDAP命令汇总及常用参数

1

2

3

4

5

6

7

8

9

10

11

# 以下命令需要安装openldap-clients包<br>ldapsearch:搜索 OpenLDAP 目录树条目。

ldapadd:通过 LDIF 格式,添加目录树条目。

ldapdelete:删除 OpenLDAP 目录树条目。

ldapmodify:修改 OpenLDAP 目录树条目。

ldapwhoami:效验 OpenLDAP 用户的身份。

ldapmodrdn:判断 OpenLDAP 目录树 DN 条目。

ldapcompare:判断 DN 值和指定参数值是否属于同一个条目。

ldappasswd:修改 OpenLDAP 目录树用户条目实现密码重置,建议加上-S参数自定义密码,否则会随机生产一个密码,和系统PAM建立合理的关系后可以使用系统的passwd命令修改(建议)。

slaptest:验证 slapd.conf 文件或 cn=配置目录。

slapindex:创建 OpenLDAP 目录树索引,提供查询效率。

slapcat:将数据条目转换为 OpenLDAP 的 LDIF 文件

二、导入样例数据

1.修改样例文件

1

2

3

4

[root@ldap-server1 ~]# rpm -qf /usr/share/dirsrv/data/Example.ldif

389-ds-base-1.3.10.2-15.el7_9.x86_64

[root@ldap-server1 ~]# cp /usr/share/dirsrv/data/Example.ldif .

[root@ldap-server1 ~]# sed -i 's/dc=example/dc=ldap-server1, dc=example/g' Example.ldif   #修改样例文件中服务的DN,根据实际情况修改 

2.登录console,打开目录树

3.选择导入数据

4.选择样例文件,务必点击Continue on error选项,并点击ok

5.验证导入结果,可以看到新增了很多用户

四、新增

ldapadd

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

[root@ldap-server1 ~]# ldapsearch -x "(uid=jvedder)" > blues.ldif #生成新用户的ldif文件,从另一个用户生成即可

[root@ldap-server1 ~]# vim blues.ldif  #简单修改

dn: uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com

givenName: Elwood

telephoneNumber: +1 408 555 4668

sn: Blues

ou: Product Development

ou: People

l: Chicago

manager: uid=bparker,ou=People,dc=ldap-server1,dc=example,dc=com

roomNumber: 3445

mail: jvedder@example.com

facsimileTelephoneNumber: +1 408 555 0111

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

uid: eblues

cn: Elwood Blues

[root@ldap-server1 ~]# ldapadd -x -f blues.ldif #添加会报错,提示匿名用户没有权限

adding new entry "uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com"

ldap_add: Insufficient access (50)

    additional info: Insufficient 'add' privilege to add the entry 'uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com'.

 

[root@ldap-server1 ~]# ldapadd -x -c -f blues.ldif  -W  #指定用户,这里用的是~/.ldaprc中的用户,-c是当出现报错是继续执行,等同于上面导入用户时Continue on error选项

Enter LDAP Password:

adding new entry "uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com"

 

[root@ldap-server1 ~]# ldapsearch -x "(uid=eblues)" -LLL         #查询刚刚新增的用户信息

dn: uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com

givenName: Elwood

telephoneNumber: +1 408 555 4668

......

五、删除操作

ldapdelete

1

2

3

4

5

6

7

8

9

10

1.命令行删除

[root@ldap-server1 ~]# ldapdelete -x -W uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com

Enter LDAP Password:

[root@ldap-server1 ~]# ldapsearch -x "(uid=eblues)" -LLL

2.文件删除

[root@ldap-server1 ~]# cat delete.ldif

uid=scarter,ou=People,dc=ldap-server1,dc=example,dc=com

uid=tmorris,ou=People,dc=ldap-server1,dc=example,dc=com

[root@ldap-server1 ~]# ldapdelete -x -W -f delete.ldif

[root@ldap-server1 ~]# ldapsearch -x "(uid=scarter)" -LLL

六、修改操作

ldapmodify:修改

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

[root@ldap-server1 ~]# vim blues-modify.ldif  #创建需要修改的ldif文件

dn: uid=eblues,ou=People,dc=ldap-server1,dc=example,dc=com   #指定需要修改的条目

changetype: modify     #指定变更的类型为修改

replace: roomNumber    #修改类型的替换操作 即替换该条目的roomNumber属性

roomNumber: 8888

-

replace: l           #多个修改操作使用-隔离

l: Belvery Hills

-

delete: facsimileTelephoneNumber  #删除某个属性

-

add: postalcode         #添加某个属性,具体熟悉可以在控制台中查看用户的高级选项中查看

postalcode: 10086

-

[root@ldap-server1 ~]# ldapmodify -x -f blues-modify.ldif -W

[root@ldap-server1 ~]# ldapsearch -x "(uid=eblues)" -LLL

七、查询操作

ldapsearch:搜索

 

1

2

3

4

5

6

7

8

1.匿名查询

[root@ldap-server1 ~]# ldapsearch -h ldap-server1.example.com -b ou=people,dc=ldap-server1,dc=example,dc=com -x # -h指定服务的IP地址或在主机名称 -b 指定从哪个容器查询,即从哪里开始查询  -x 使用用户名密码方式验证,不指定用户和密码表示使用匿名用过2.指定用户查询

 

2.指定用户查询

[root@ldap-server1 ~]# ldapsearch -h ldap-server1.example.com -b ou=people,dc=ldap-server1,dc=example,dc=com -x -D "cn=Directory Manager" -W # -D 指定用户 -W 在交互式命令行中输入密码

 

3.添加过滤参数

[root@ldap-server1 ~]# ldapsearch -x -LLL 'uid=ldap1' cn gidNumber #过滤uid=ldap1的条目,并获取其中cn gidNumber字段

 

简化命令行搜索  

1

2

3

4

5

6

[root@ldap-server1 ~]# vim /etc/openldap/ldap.conf

BASE    dc=ldap-server1,dc=example,dc=com #等同于 -b

URI     ldap://ldap-server1.example.com  #等同于 -h 

 

[root@ldap-server1 ~]# vim ~/.ldaprc

BINDDN cn=Directory Manager  #等同于 -D   

其他常用搜索命令

1

2

3

4

5

6

7

8

9

10

11

12

13

14

ldapsearch -x -D "cn=Directory Manager" -W -L  #-L以精简模式显示,可以有三个LLL

ldapsearch -x "(uid=jyu)" -L  #查询uid等于jyu的用户信息

ldapsearch -x "(uid=jyu)" -LLL mail telephoneNumber   #查看uid等于jyu的mail和电话信息

ldapsearch -x "(uid=jyu*)" -LLL mail    #模糊查询

ldapsearch -x "(!(age>=18))" -LLL mail   #可以对数值进行比较,!为取反

ldapsearch -x "(&(age=18)(gender=male))" -LLL mail   #可以AND查询多个条件

ldapsearch -x "(|(uid=jyu)(uid=lyf))" -LLL mail   #或多个查询条件

 

以下为禁止搜索的字符,如果需要查询需要转移,或在使用对应的ASCII码:

*       \2A

(       \28

)       \29

\       \5c

(空)    \00

相关文章
|
4月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
503 77
|
4月前
|
XML 数据库 Android开发
Android数据库的使用(增删改查)
本文介绍了一个简单的数据库操作Demo,包含创建数据库、增删改查功能。通过5个按钮分别实现创建数据库、插入数据、删除数据、更新数据和查询数据的操作。代码结构清晰,适合初学者学习Android SQLite数据库基础操作。
127 5
|
4月前
|
数据库 Android开发 开发者
Android常用的room增删改查语句(外部数据库)
本文分享了将一个原生数据库驱动的单词APP重构为使用Room库的过程及遇到的问题,重点解决了Room中增删改查的常用语句实现。文章通过具体示例(以“forget”表为例),详细展示了如何定义实体类、Dao接口、Database类以及Repository和ViewModel的设计与实现。同时,提供了插入、删除、更新和查询数据的代码示例,包括模糊查询、分页加载等功能。此外,针对外部数据库导入问题,作者建议可通过公众号“计蒙不吃鱼”获取更多支持。此内容适合有一定Room基础的开发者深入学习。
161 0
Android常用的room增删改查语句(外部数据库)
|
11月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
297 6
|
7月前
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
9月前
|
SQL 关系型数据库 API
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
312 13
|
11月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
212 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
11月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
384 5

热门文章

最新文章