前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openldap修改管理员密码和数据增改

openldap修改管理员密码和数据增改

原创
作者头像
yaodo
发布2022-12-20 13:41:19
3K0
发布2022-12-20 13:41:19
举报
文章被收录于专栏:netservice

1.修改管理员密码

1.1使用ldapsearch命令查询管理员的dn

代码语言:javascript
复制
[root@wiki ~]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b  cn=config olcRootDN=cn=Manager,dc=my-domain,dc=com dn olcRootDN olcRootPW
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={2}bdb,cn=config
olcRootDN: cn=Manager,dc=******,dc=com
olcRootPW: {SSHA}KHwQR1zvWlPASLo+AHkI0gxzbF+KQ1xm

可以看到,这里返回的dn是olcDatabase={2}bdb,cn=config,密码等信息也都一并返回。这里有用的是dn和密码的加密方式,比如这里是SSHA,dn是后面修改的Entry DN,而知道密码的加密方式就可以使用该加密方式生成新密码。

1.2使用slappasswd生成密码

代码语言:javascript
复制
[root@wiki ~]# slappasswd -h {SSHA}
New password: 
Re-enter new password: 
{SSHA}vAYFH48G4IfrpD57gTR/DNZqLHWzR+Fg

1.3 使用ldapmodify修改条目

使用下面的命令来修改管理员条目:

代码语言:javascript
复制
ldapmodify -Y EXTERNAL -H ldapi:///

输入上面的命令后会进入到交互模式:

代码语言:javascript
复制
[root@wiki ~]# ldapmodify -Y EXTERNAL -H ldapi:///
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0

然后输入修改的条目,也就是第1步中获取到的DN:

代码语言:javascript
复制
dn: olcDatabase={2}bdb,cn=config  #这是第1步获取的管理员dn

replace: olcRootPW

olcRootPW: {SSHA}vAYFH48G4IfrpD57gTR/DNZqLHWzR+Fg #这里是上面slappasswd生成的密码

输入完毕后,按Crtl+D键保存退出交互模式。

代码语言:javascript
复制
modifying entry "olcDatabase={2}bdb,cn=config"

如果出现上面的信息,就证明修改成功。

1.4 重启服务使修改生效

重启slapd服务:

登录后复制

service slapd restart

代码语言:javascript
复制
ldapsearch -x -D "cn=Manager,dc=******,dc=com" -W -b "dc=******,dc=com"
Enter LDAP Password: 

####这里省略返回结果内容#####

# search result

search: 2

result: 0 Success

# numResponses: 32

# numEntries: 31

到此,成功修改openldap的管理员密码。

2.数据增改

如何通过 ldapmodify、ldapadd、ldapdelete 命令来实现数据的增删减改,以及如何用 ldapsearch 命令实现数据的查询。

十分希望可以亲手输入这些命令,而不是单纯的复制粘贴。你可以在这个链接下载到本视频用到了 ldif 文件。

2.1 ldapmodify、ldapadd 命令格式如图。

代码语言:javascript
复制
ldapmodify [ldap 服务器地址] [你的用户名] [你的密码] [ldif 文件的地址]

前三个选项很好理解,ldif 文件是用来干什么呢。大家应该注意到命令格式里面没有出现任何与数据相关的信息,既然是对数据库进行增删减改,怎么可能没有数据信息呢。对了,数据信息全部写在 ldif 文件里面。ldif 文件对书写格式有特殊的要求,但是只要你跟着写上一次,就学会了。

这个是 ldapmodify 常用选项表。

2.2 增删 inetOrgPerson 类

给 ldap 数据库增加信息可以用 ldapmodify 也可以用 ldapadd。

我们需要为 Barbara 创建一个条目,这个条目需要包含他的名字、姓、邮箱、uid、称号这些信息。

写成 ldif 文件就是这个样子。

代码语言:javascript
复制
dn: cn=Barbara,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen

第一行是有关 dn 的信息,这里是把 barbara 归到了 example.org 下面。需要注意的是 dn 的冒号后面有一个空格,这个是必须的。 第二行本文中的所有信息存储在 inetOrgPerson 类的实例中,后面的就是 barbara 的邮箱、称号之类的信息了。

接下来我分别演示 ldapadd 和 ldapmodify 的用法。

首先,我们进入到 docker 容器内部。

将信息写入 ldif 文件。

2.3 ldapadd

代码语言:javascript
复制
ldapadd -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif

接下来我们用 ldapsearch 来查看该数据是否被正确的写入。

代码语言:javascript
复制
ldapsearch -x -H ldap://127.0.0.2:389  -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin 

和其他数据库一样,ldapsearch 可以增加查询条件。

代码语言:javascript
复制
ldapsearch -x -H ldap://127.0.0.2:389  -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin "cn=*,dc=example,dc=org"

2.4 ldapdelete

为了之后的实验,我们需要把这个条目删掉。

代码语言:javascript
复制
ldapdelete -x -H ldap://127.0.0.2:389  -D "cn=admin,dc=example,dc=org" -w admin  "cn=Barbara,dc=example,dc=org"

2.5 ldapmodify

ldapmodify 和 ldapadd 类似,但是需要对 ldif 文件进行小小的修改。 在 ldif 文件的第二行加上。这样 ldapmodify 才知道本 ldif 文件的目的是增加一个条目。

代码语言:javascript
复制
changetype: add
代码语言:javascript
复制
ldapmodify -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif

2.6 增组织

增加组织和增加人员类似。

代码语言:javascript
复制
dn: ou=People,dc=example,dc=org
objectclass: top
objectclass: organizationalUnit
ou: People

dn: ou=Servers,dc=example,dc=org
objectclass: top
objectclass: organizationalUnit
ou: Servers

2.7 更改条目的属性

更改条目的属性也分为好几种,比如更改现有的属性,增加新属性等。这些我也都会依次给大家进行演示。

更改现有属性

代码语言:javascript
复制
dn: cn=Barbara,dc=example,dc=org
changetype: modify
replace: title
title: one of the world's most famous mythical manager

新增一个属性

代码语言:javascript
复制
dn: cn=Barbara,dc=example,dc=org
changetype: modify
add: description
description: Barbara description

将Barbara移动到people组织下

代码语言:javascript
复制
dn: cn=Barbara,dc=example,dc=org
changetype: modify
newsuperior: ou=People,dc=example,dc=org

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.修改管理员密码
    • 1.1使用ldapsearch命令查询管理员的dn
      • 1.2使用slappasswd生成密码
        • 1.3 使用ldapmodify修改条目
          • 1.4 重启服务使修改生效
          • 2.数据增改
            • 2.1 ldapmodify、ldapadd 命令格式如图。
              • 2.2 增删 inetOrgPerson 类
                • 2.3 ldapadd
                  • 2.4 ldapdelete
                    • 2.5 ldapmodify
                      • 2.6 增组织
                        • 2.7 更改条目的属性
                          • 更改现有属性
                            • 新增一个属性
                              • 将Barbara移动到people组织下
                              相关产品与服务
                              数据库
                              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档