以下是OpenLDAP客户端核心命令的操作详解,涵盖常用命令、参数解析及实际应用场景,结合技术要点与最佳实践整理而成:
🔐 一、基础连接与认证
-
服务器连接参数
-H/-h:指定LDAP服务器地址(-H支持完整URI,-h仅主机名/IP)- 示例:
-H ldaps://192.168.0.92:636(加密连接)
- 示例:
-p:端口号(默认389,LDAPS为636)-x:使用简单认证(非SASL),需配合-D和-w
-
身份认证方式
-D:绑定DN(管理员账号,如cn=admin,dc=example,dc=com)-w:直接输入密码(例:-w 123456)-W:交互式输入密码(更安全,避免密码泄露)-y:从文件读取密码(例:-y /path/password.txt)
⚙️ 二、数据操作命令
1. 添加条目:ldapadd
-
核心参数:
-f:指定LDIF格式文件(批量添加)-a:显式声明添加模式(默认隐含)
-
示例:
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif文件
user.ldif内容示例:dn: uid=user1,ou=People,dc=example,dc=com objectClass: inetOrgPerson uid: user1 cn: Test User sn: User ``` [3,10](@ref)
2. 修改条目:ldapmodify
-
操作类型(通过
changetype指定):modify:增/删/改属性add:新增条目(等同于ldapadd)delete:删除条目
-
示例(修改用户Shell):
ldapmodify -x -D "cn=admin,dc=example,dc=com" -W << EOF dn: uid=user1,ou=People,dc=example,dc=com changetype: modify replace: loginShell loginShell: /sbin/nologin EOF ``` [3,9](@ref)
3. 删除条目:ldapdelete
-
注意:需确保条目无子成员(如OU非空则失败)
-
示例:
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "uid=user1,ou=People,dc=example,dc=com" ``` [1,6](@ref)
4. 修改DN:ldapmodrdn
-
重命名条目(仅修改RDN部分,父路径不变)
-
示例:
ldapmodrdn -x -D "cn=admin,dc=example,dc=com" -W -r \ "uid=old_user,ou=People,dc=example,dc=com" "uid=new_user"参数
-r删除旧RDN属性。
🔍 三、数据查询命令:ldapsearch
1. 基础语法
ldapsearch [options] [filter] [attributes]
-
-b:搜索起点(Base DN,如dc=example,dc=com) -
-s:搜索范围(base/one/sub,默认sub递归子树)
2. 常用参数
| 参数 | 作用 |
|---|---|
-LLL |
禁用注释,输出纯LDIF格式 |
-o |
输出格式(如json/xml) |
-z |
返回条目数量限制 |
-u |
DN友好显示(非编码格式) |
3. 过滤器(Filter)示例
-
查询所有用户:
"(objectClass=inetOrgPerson)" -
组合条件(与操作):
"(&(uid=user1)(cn=Test*))" -
属性存在性检查:
"mail=*"(所有含邮箱的用户)
4. 完整示例
ldapsearch -x -LLL -H ldap://ldap.example.com -b "ou=People,dc=example,dc=com" \
-D "cn=admin,dc=example,dc=com" -W "(sn=Smith)" cn mail
输出用户Smith的cn和mail属性。
🔑 四、密码管理:ldappasswd
-
修改密码方式:
-s:直接指定新密码(-s 123456)-S:交互式输入新密码- 无参数:生成随机密码
-
示例:
ldappasswd -x -D "cn=admin,dc=example,dc=com" -w adminpass \ "uid=user1,ou=People,dc=example,dc=com" -S需输入两次新密码。
⚡️ 五、实用技巧
-
LDIF文件规范
- 每行末尾不能有空格,条目间用空行分隔
- 特殊字符(如
:、<)需Base64编码或::标记。
-
调试与日志
-v:详细输出(显示连接细节)-d:调试模式(如-d 32跟踪过滤器处理)。
-
安全建议
- 优先使用
-W替代-w,避免密码留痕 - 生产环境启用TLS(
-ZZ强制加密传输)。
- 优先使用
💎 命令速查表
| 命令 | 核心用途 | 关键参数 |
|---|---|---|
ldapadd |
添加条目 | -f(LDIF文件) |
ldapmodify |
修改/删除属性 | changetype: modify |
ldapdelete |
删除条目 | 目标DN |
ldapsearch |
查询数据 | -b(Base DN)、过滤器 |
ldappasswd |
修改密码 | -S(交互式) |
完整参数列表可查阅 OpenLDAP 官方文档,或参考示例:[LDAP命令详解]。
浙公网安备 33010602011771号