1.查询的命令
-p 指明端口号
-h 指明主机名
-D 指明DN 管理员帐号
-W指明采样手动输入密码的方式
-w 后面加密码,等同于-W 输入密码
-b search base
通常的查询 ldapsearch -p 端口号 -h ldap://主机地址 -D “cn=admin,dc=example,dc=com” -w “管理员密码” -b “搜索的范围,即base(比如dc=example,dc=com)” “(搜索条件,如果不设置,默认搜索base下的所有条目)”
2.查询的过滤条件
1.支持的运算符
Operator | Meaning |
---|---|
= | Equality |
>= | Greater than or equal to (lexicographical) |
<= | Less than or equal to (lexicographical) |
& | AND, all conditions must be met |
| | OR, any of the conditions must be met |
! | NOT, the clause must evaluate to False |
比如查询cn为Jim Smith的 或者 givenName为Jim且sn为Smith的
“(|(cn=Jim Smith)(&(givenName=Jim)(sn=Smith)))”
2.特殊字符
LDAP包含的特殊字符常用的如下,如果搜索条件中有以下特殊字符,可用16进制的表达式进行转义
Character | Hex Representation |
---|---|
* | \2A |
( | \28 |
) | \29 |
\ | \5C |
Nul | \00 |
比如要搜索cn为"James (Jim) Smith"的条目
条件应写为“(cn=James Jim\2A\29 Smith)"
3.例子
例子
1.LDAP身份验证
ldapsearch -p 389 -h ldap://localhost -D "cn=admin,dc=example,dc=com" -W
2.搜索所有条目
ldapsearch -p 389 -h ldap://localhost -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com"
3.搜索ou=People的所有条目
ldapsearch -p 389 -h ldap://localhost -D "cn=admin,dc=example,dc=com" -W -b "ou=People,dc=example,dc=com"
4.搜索uid为xxx的条目
ldapsearch -p 389 -h ldap://localhost -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com" "(uid=xxx)"
4.模糊查询uid以xxx开头的条目
ldapsearch -p 389 -h ldap://localhost -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com" "(uid=xxx*)"
待完善…
参考:https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx?Sort=MostUseful
参考:https://m.linuxidc.com/Linux/2013-08/88841.htm