LDAP 常用命令实操

在 实操命令之前,得先有一个 LDAP 服务器,我就不搭建 AD域了,我可以直接在 linux 里面搭建一个简单的 LDAP 服务器,学习使用 , 我使用的云服务器操作系统是 ubuntu 18.04

ubuntu 中 ldap服务器搭建

我们可以简单的在 linux 里面搭建一个 LDAP 服务器,大概分为如下几步:

  • 修改 linux 的 host 文件,添加一个 host ,将自己的域名写进去
  • 安装 ldap
  • 配置 ldap
  • 添加 ldap 里面的组织结构
  • ldap 的查询指令使用

1、修改 linux 的 host 文件,添加一个 host ,将自己的域名写进去

127.0.1.1    xiaomotong.com

LDAP 常用命令实操_第1张图片

2、安装 ldap

直接执行命令安装 ldap

sudo apt-get install -y slapd ldap-utils

安装成功之后,ldap 的一系列命令我们都可以使用了,

# ldap
ldapadd                                       
ldapaddgroup                                  
ldapaddmachine                                
ldapadduser                                   
ldapaddusertogroup                            
ldapcompare      
ldapdelete       
ldapdeletegroup  
ldapdeletemachine
ldapdeleteuser
ldapsearch
ldapsetpasswd
ldapsetprimarygroup
ldapurl
ldapwhoami
ldapmodrdn         
ldappasswd         
ldaprenamegroup    
ldaprenamemachine  
ldaprenameuser
ldapinit           
ldapmodify         
ldapmodifygroup    
ldapmodifymachine  
ldapmodifyuser
ldapdeleteuserfromgroup 
ldapexop                
ldapfinger              
ldapgid                 
ldapid   

ldap 涉及的命令很多,感兴趣的可以一个一个的玩个够,因为 ldap 服务器绝大部分是都是在做查询操作,特别是在 查询和添加的比例在 10:1 以上的时候,更能体现出 ldap 服务器的高性能,他可是所有数据库中最快的数据库了

3、配置 ldap

做一个 ldap 的基本配置

sudo dpkg-reconfigure slapd
  • 配置自己的 dns 域名

LDAP 常用命令实操_第2张图片

  • 配置好自己的密码,这个密码很重要,可不要忘记了,建议输个简单的
  • 关闭防火墙配置,ldap 服务器默认的端口号是 389,加密的时候使用的端口号是 636
ufw allow proto tcp from any to 127.0.0.1 port 389

ufw allow proto tcp from any to 127.0.0.1 port 636 

4、添加 ldap 里面的组织结构

我们可以使用 ldapadd 命令添加 ldap 的组织结构,我们可以使用 ldapadd -X或者是其他参数来查看帮助文档

LDAP 常用命令实操_第3张图片

对于添加 ldap 组织结构,我们简单的一般会使用这几个参数:

  • -x

简单认证一下

  • -D

绑定 DN

  • -W

需要提供绑定用户的密码

  • -f

指定读取的文件

我们来尝试添加一些组合用户吧

  • 我们在域下面添加几个 ou 组织单元
    • People
    • dev
      • golang
      • c++
      • java

我们任意命名ldap 的文件 add.ldif ,可以随便命名主要是里面的内容需要懂

dn: ou=People,dc=xiaomotong,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=dev,dc=xiaomotong,dc=com
objectClass: organizationalUnit
ou: dev


dn: ou=golang,ou=dev,dc=xiaomotong,dc=com
objectClass: organizationalUnit
ou: golang

dn: ou=clang,ou=dev,dc=xiaomotong,dc=com
objectClass: organizationalUnit
ou: clang

dn: ou=java,ou=dev,dc=xiaomotong,dc=com
objectClass: organizationalUnit
ou: java

上述文本表达的意思很简单,也很明白

dn ,上篇文章我们说过,他是代表一个条本的唯一名字,辨别名,例如 dn: ou=java,ou=dev,dc=xiaomotong,dc=com 我们就可以从右向左来看,域名是dc=xiaomotong,dc=com,父组是ou=dev 自己这个组是ou=java

# ldapadd -x -D cn=admin,dc=xiaomotong,dc=com -W -f add.ldif

LDAP 常用命令实操_第4张图片

执行上述添加命令,输入刚才我们设置的密码

我们可以看到,只添加成功了 3 条,添加到 c++ 的时候,ldap 给我们报语法错误了,因为我们有 ++ 字符,那么我们将其修改成 clang 吧,再来看看效果

# ldapadd -x -D cn=admin,dc=xiaomotong,dc=com -W -f add.ldif

我们可以看到,由于文本中前面几个信息,People 这个组,已经存在了,因此 ldap 也不继续向下执行了

那么我们将后面的 2 条数据(clang ou 和 java ou) ,拷贝到 文件 add2.ldif ,来继续实践添加组织结构

add2.ldif

LDAP 常用命令实操_第5张图片

# ldapadd -x -D cn=admin,dc=xiaomotong,dc=com -W -f add2.ldif

看到结果,正确将数据添加到 ldap 中,没有问题

5、ldap 的查询指令使用

上面我们说到 ldap 支持的命令很多,我们查询的时候可以使用 ldapsearch 命令

我们不知道 ldapsearch 命令如何使用,我们可以随便输入一个参数,就可以看到具体的帮助信息了,例如

# ldapsearch -X

LDAP 常用命令实操_第6张图片

LDAP 常用命令实操_第7张图片

查询的时候,使用参数比较多的是如下几个,其他的参数也不难,感兴趣的可以一个一个的尝试一下:

  • -x

简单认证一下

  • -p

指定服务器端口

  • -h

指定服务器地址

  • -b

基于哪个 base dn 进行查询

  • -LLL

以 LDIF 格式打印响应结果

那么我们来简单查询一下 xiaomotong.com 里面都有哪些组织结构

# ldapsearch -x -LLL -b dc=xiaomotong,dc=com

LDAP 常用命令实操_第8张图片

没毛病,我们刚才添加的组织结构都能够查询出来

我们也可以使用上次文章介绍到的 ldap 可视化工具查看我们的 ldap 组织结构信息

  • Softerra LDAP Browser 4.5

LDAP 常用命令实操_第9张图片

基本上会如何添加组织结构,和查询组织结构,那么我们就有办法将 ldap 中的数据同步到我们自己的系统中了

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

LDAP 常用命令实操_第10张图片

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

你可能感兴趣的:(后端,服务器,linux,ubuntu)