LDAP 常用命令

LDAP 常用命令主要通过 ldapsearch、ldapmodify、ldapadd 等工具实现。以下是一些常用命令及其示例:

1. ldapsearch (搜索)

  • 语法: ldapsearch -H <ldap_uri> -x -D <bind_dn> -w <bind_password> -b <search_base> <search_filter> <attributes>

  • 参数说明:

    • -H <ldap_uri>: LDAP 服务器的 URI (例如:ldap://ldap.example.com:389 或 ldaps://ldap.example.com:636)
    • -x: 使用简单认证 (simple bind)。
    • -D <bind_dn>: 绑定 DN (例如:cn=admin,dc=example,dc=com)。
    • -w <bind_password>: 绑定密码。
    • -b <search_base>: 搜索的起始点 (例如:dc=example,dc=com)。
    • <search_filter>: 搜索过滤器 (例如:(&(objectClass=user)(uid=john)) )。
    • <attributes>: 要返回的属性 (例如:uid,cn,mail)。
  • 示例:

    • 查找所有用户: ldapsearch -H ldap://ldap.example.com -x -D "cn=admin,dc=example,dc=com" -w password -b "dc=example,dc=com" "(objectClass=user)" cn

    • 查找 uid 为 john 的用户: ldapsearch -H ldap://ldap.example.com -x -D "cn=admin,dc=example,dc=com" -w password -b "dc=example,dc=com" "(uid=john)" cn,mail

2. ldapmodify (修改)

  • 语法: ldapmodify -H <ldap_uri> -x -D <bind_dn> -w <bind_password> -f <ldif_file>

  • 参数说明:

    • 参数含义与 ldapsearch 相同。
    • -f <ldif_file>: 包含修改操作的 LDIF 文件。
  • LDIF 文件示例 (修改 cn 和 mail):

dn: uid=john,dc=example,dc=com
changetype: modify
replace: cn
cn: John Doe
replace: mail
mail: [email protected]
  • 示例: ldapmodify -H ldap://ldap.example.com -x -D "cn=admin,dc=example,dc=com" -w password -f modify.ldif

3. ldapadd (添加)

  • 语法: ldapadd -H <ldap_uri> -x -D <bind_dn> -w <bind_password> -f <ldif_file>

  • 参数说明:

    • 参数含义与 ldapsearch 相同。
    • -f <ldif_file>: 包含添加操作的 LDIF 文件。
  • LDIF 文件示例 (添加新用户):

dn: uid=jane,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: person
objectClass: top
uid: jane
cn: Jane Doe
sn: Doe
userPassword: password
  • 示例: ldapadd -H ldap://ldap.example.com -x -D "cn=admin,dc=example,dc=com" -w password -f add.ldif

4. ldapdelete (删除)

  • 语法: ldapdelete -H <ldap_uri> -x -D <bind_dn> -w <bind_password> <dn>

  • 参数说明:

    • 参数含义与 ldapsearch 相同。
    • <dn>: 要删除的条目的 DN。
  • 示例: 删除 uid 为 jane 的用户: ldapdelete -H ldap://ldap.example.com -x -D "cn=admin,dc=example,dc=com" -w password "uid=jane,dc=example,dc=com"

其他常用选项:

  • -h <hostname>: LDAP 服务器主机名。
  • -p <port>: LDAP 服务器端口号。
  • -s <scope>: 搜索范围 (base, one, sub)。
  • -l <timelimit>: 搜索时间限制 (秒)。
  • -ZZ: 使用 StartTLS。

重要提示:

  • 以上命令中的 <...> 需要替换为实际值。
  • 确保已安装必要的 LDAP 客户端工具 (例如:openldap-clients)。
  • 使用 -w 选项在命令行中提供密码是不安全的,建议使用 -y <password_file> 从文件中读取密码。
Last Updated:
Contributors: gclhaha