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"