OpenLDAP 常见命令行命令及解析
本文详细介绍了 OpenLDAP 常用的命令行工具及其使用方法,适合 LDAP 管理员和系统运维人员阅读。
目录
基本工具介绍
常用命令详解
实用操作示例
高级功能使用
故障排查技巧
基本工具介绍
OpenLDAP 提供了一系列命令行工具用于目录服务的操作和管理:
-
ldapsearch - 目录搜索工具
用于搜索和查询 LDAP 目录中的条目 -
ldapadd - 添加条目工具
用于向目录中添加新条目 -
ldapmodify - 修改条目工具
用于修改现有目录条目 -
ldapdelete - 删除条目工具
用于从目录中删除条目 -
ldappasswd - 密码管理工具
用于修改用户密码
常用命令详解
ldapsearch 命令
基本搜索语法
ldapsearch [选项] [过滤器] [属性列表]
示例:匿名搜索所有条目
ldapsearch -x -H ldap://server.example.com -b "dc=example,dc=com" "(objectClass=*)"
示例:认证搜索特定用户
ldapsearch -x -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com" "(uid=john)"
常用选项说明:
选项
说明
-x
使用简单认证
-H
指定服务器地址
-D
绑定DN(用户名)
-W
提示输入密码
-b
指定搜索基准DN
-LLL
输出LDIF格式(无注释)
ldapadd 命令
添加新条目
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f new_entry.ldif
交互式添加
cat << EOF | ldapadd -x -D "cn=admin,dc=example,dc=com" -W
dn: uid=john,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
uid: john
cn: John Doe
sn: Doe
EOF
ldapmodify 命令
修改现有条目
ldapmodify -x -D "cn=admin,dc=example,dc=com" -W -f modify.ldif
LDIF文件示例内容
dn: uid=john,ou=users,dc=example,dc=com
changetype: modify
replace: cn
cn: John Smith
add: title
title: Developer
ldapdelete 命令
删除条目
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "uid=john,ou=users,dc=example,dc=com"
批量删除
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W -f delete_list.txt
ldappasswd 命令
修改用户密码
ldappasswd -x -D "cn=admin,dc=example,dc=com" -W -s newpassword "uid=john,ou=users,dc=example,dc=com"
交互式修改密码
ldappasswd -x -D "uid=john,ou=users,dc=example,dc=com" -W -S
实用操作示例
- 备份LDAP数据
完整备份
ldapsearch -x -LLL -H ldap://localhost -b "dc=example,dc=com" "(objectClass=*)" > full_backup.ldif
仅备份用户数据
ldapsearch -x -LLL -H ldap://localhost -b "ou=users,dc=example,dc=com" "(objectClass=*)" > users_backup.ldif
2. 恢复LDAP数据
从备份文件恢复
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f full_backup.ldif
3. 创建组织单位
创建OU的LDIF文件
cat > create_ou.ldif << EOF
dn: ou=developers,dc=example,dc=com
objectClass: organizationalUnit
ou: developers
description: Development Team
EOF
执行创建
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f create_ou.ldif
4. 查询服务器状态
查询服务器配置
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
查询监控信息
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=monitor
高级功能使用
TLS/SSL加密连接
使用LDAPS协议
ldapsearch -x -H ldaps://server.example.com -b "dc=example,dc=com" "(objectClass=*)"
强制使用TLS
ldapsearch -x -H ldap://server.example.com -ZZ -b "dc=example,dc=com" "(objectClass=*)"
使用证书认证
ldapsearch -H ldaps://server.example.com -b "dc=example,dc=com"
-D "uid=user,dc=example,dc=com" -W -Z -K client.key -C client.crt
性能调优选项
设置超时时间
ldapsearch -x -H ldap://server.example.com -b "dc=example,dc=com"
-o nettimeout=30 "(objectClass=*)"
限制返回条目数
ldapsearch -x -H ldap://server.example.com -b "dc=example,dc=com"
-z 100 "(objectClass=*)"
批量操作技巧
批量添加用户
for user in user1 user2 user3; do
cat > temp.ldif << EOF
dn: uid=$user,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
uid: $user
cn: $user
sn: User
userPassword: $(slappasswd -s password123)
EOF
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f temp.ldif
done
故障排查技巧
- 连接问题排查
检查服务器是否运行
systemctl status slapd
测试端口连通性
nc -zv ldap-server 389
nc -zv ldap-server 636
查看服务器日志
tail -f /var/log/slapd.log
2. 认证问题排查
详细输出模式
ldapsearch -x -H ldap://server.example.com -b "dc=example,dc=com"
-D "cn=admin,dc=example,dc=com" -W -v "(objectClass=*)"
调试模式
LDAPDEBUG=1 ldapsearch -x -H ldap://server.example.com
-b "dc=example,dc=com" "(objectClass=*)"
3. 权限问题排查
检查ACL设置
ldapsearch -Y EXTERNAL -H ldapi:/// -b olcDatabase={1}mdb,cn=config
查看当前有效权限
ldapwhoami -x -D "uid=user,dc=example,dc=com" -W
4. 性能问题排查
监控搜索性能
time ldapsearch -x -H ldap://server.example.com
-b "dc=example,dc=com" "(objectClass=person)" > /dev/null
检查索引
ldapsearch -Y EXTERNAL -H ldapi:///
-b olcDatabase={1}mdb,cn=config olcDbIndex
总结表格
命令
功能
常用选项
ldapsearch
搜索条目
-x, -H, -D, -W, -b
ldapadd
添加条目
-x, -D, -W, -f
ldapmodify
修改条目
-x, -D, -W, -f
ldapdelete
删除条目
-x, -D, -W
ldappasswd
修改密码
-x, -D, -W, -s
注意事项
安全考虑:生产环境中避免使用明文密码,使用-W选项交互式输入密码
备份重要:在进行修改操作前务必备份重要数据
权限管理:合理设置ACL,遵循最小权限原则
性能优化:为常用查询字段创建索引提升性能
希望本文对您的 OpenLDAP 管理工作有所帮助!