IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    LDAP用户管理,实现客户端增删改查

    bear发表于 2016-01-13 07:16:41
    love 0

    LDAP简称对应

    o– organization(组织-公司)
    ou – organization unit(组织单元/部门)
    c - countryName(国家)
    dc - domainComponent(域名组件)
    sn – suer name(真实名称)
    cn - common name(常用名称)
    dn - distinguished name(专有名称)
    

    查看用户列表

    ldapsearch -x -b "ou=People,dc=163,dc=com" | grep dn
    

    这一步需要注意:
    如果是在客户端查询,需要加入-H ldap://192.168.x.x参数
    如果是通过ldif导入的系统用户,其DN是uid=UserNmae,ou=People,dc=163,dc=com
    而如果通过phpldapadmin或者LAM等第三方工具建立的用户,其DN是cn=UserNmae,ou=People,dc=163,dc=com
    如果使用ldapsearch或者ldappasswd命令查询/修改用户信息的时候,请注意这一点

    查询单个用户信息

    ldapsearch -x -b "用户DN"    #根据上面的用户列表,找到用户的DN
    ldapsearch -x -b "uid=ldapuser8,ou=People,dc=163,dc=com"
    

    查看组列表

    ldapsearch -x -b "ou=Group,dc=163,dc=com" | grep dn
    

    添加用户

    ldapadd -x -D "cn=admin,dc=163,dc=com" -W -f passwd_ldapuser1.ldif   #回车后需要输入密码
    ldapadd -x -D "cn=admin,dc=163,dc=com" -W PASSWORD -f passwd_ldapuser1.ldif   #无需输入密码
    

    用户自行修改密码

    ldappasswd -H ldap://Server_IP -x -D "cn=UserName,ou=People,dc=163,dc=com" -w OldPasswd -S            #回车后会提示输入新密码
    ldappasswd -H ldap://Server_IP -x -D "cn=UserName,ou=People,dc=163,dc=com" -w OldPasswd -s NewPasswd  #直接在命令里指定新密码
    

    注意,这一步可能出现如下错误:
    Result: Insufficient access (50)说明普通用户没有修改权限
    ldap_bind: Invalid credentials (49)说明凭证无效,请参考这篇文章

    使用管理员修改普通用户的密码

    ldappasswd -H ldap://Server_IP -x -D "cn=admin,dc=163,dc=com" -W -S "uid=UserName,ou=People,dc=163,dc=com"
    

    回车以后,New password是指输入UserName的密码,而Enter LDAP Password才应该输入管理员密码
    这里极有可能遇到ldap_bind: Invalid credentials (49)错误,请参考这篇文章

    删除用户

    ldapdelete -x -D "cn=admin,dc=163,dc=com" -W "uid=用户名,ou=People,dc=163,dc=com"
    

    提示:删除用户时,并不会删除同名的组,请记得删除同名组

    删除组

    ldapdelete -x -D "cn=admin,dc=163,dc=com" -W "cn=组名,ou=Group,dc=163,dc=com" 
    


沪ICP备19023445号-2号
友情链接