Linux上使用ldapsearch命令通过AD GC查询指定用户

一,前言

需要你对Microsoft AD ,AD GC有一定的了解,并且AD要启用了GC。特别是要弄懂,林和域的关系,你才能明白GC在他俩之间的关系。

GC中文名:全局编录

会将你林下所有域的所有对象存储在一个目录里面,但是并没有存储该对象的所有属性,而是一些常用属性,例如账户名,手机号,电子邮件等。正常情况下,如果你只记得自己的用户名和密码,而不知道账户所在域,你是无法登录的,但是你可以通过GC进行查询自己所在的域,然后再登录。所以你可以把GC简单理解成一个对象常用信息存储目录,当然,GC还有很多强大的功能,这里只是让你将它简单具体化。

二,正文

1.命令构成 ,这里使用明文绑定验证给大家演示

ldapsearch -x -H ldap://<主机名>.<域名>:3268 -D "CN=<管理员名>,CN<管理员所在的组>,DC=<域名前半段>,DC=<域名后半段>" -W "<需要搜索的标识>" <需要搜索的属性>

2.命令拆解

下面是我的实操命令,DC是我主机名,TEST.ORG是我域名,Administrator是根域管理员,lkq是未知域的普通用户。

因为GC查询走的是3268端口,所以是固定的,必填。

然后登录了一个Administrator的管理员,这里是需要提供管理员所在的组和DN用于绑定用的; -W:提示输入Administrator的密码 ;

"cn=*lkq*" 利用dministrator的管理权限去搜索一个叫lkq用户的mail;我这里是通过账户名作为搜索标识,需要搜索的属性为mail。

ldapsearch -x -H ldap://DC.TEST.ORG:3268 -D "CN=Administrator,CN=Users,DC=TEST,DC=ORG" -W "cn=lkq" mail

注意这里的"CN=Administrator,CN=Users,DC=TEST,DC=ORG"和lkq这个用户是没有任何关系的,Administrator是一个根域的管理员账户,他有权查看和修改所有其他域账户的权利,。如果我这里演示登录lkq用户,因为这样就提前知道了lkq所在域了,测试也就没有准确性。

3.和常见命令的区别

这里搜索lkq这个用户的时候,没有通过-b去指定用户所在的域和位置,而是指定端口3268说明使用GC进行搜索。如果将ldap://DC.TEST.ORG:3268换成ldap://DC.TEST.ORG:389,使用普通ldap搜索,函数就会执行失败。因为如果你不通过GC全局目录,Administrator根本不知道lkq在哪个域,又如何查看他的属性呢?

当你把3268和389两个端口都使用命令行执行出结果,你就能更加的理解GC他到底是个什么,而不是一个抽象的东西了。

相关推荐
mldong5 小时前
引擎从不发一条消息:jeeflow 的两类扩展点与消息模块的分工
java·架构
君顾15 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
名字还没想好☜6 小时前
用 systemd 托管后台服务:Restart 策略、日志接管、资源限制与开机自启全踩一遍
运维·docker·kubernetes
zhanghe6876 小时前
es的密码带有特殊字符,导出
java
pnoker6 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3
my_realmy6 小时前
Java SE 基础学习笔记(一):面向对象、继承多态、抽象接口与异常(JDK 8)
java·多线程·并发··生产者消费者模式
乌恩大侠6 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
tangwangbi6 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
天远数科7 小时前
风险治理实战:基于天远车信盟出险构建自动化理赔核保流水线
java·网络·人工智能·自动化
蜀道山老天师7 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash