openldap最佳实践,如何使用原生命令管理ldap用户成员?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
openldap
存在的核心意义是用户(统一登陆),有了LDAP
的用户名和密码,才有后续的各种编程应用。所以,本文将要讲述给openldap
使用原生命令,增加新用户,修改密码,以及成员查询的基本方式。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验文章。本文测试环境:win10
,openldap@2.4.32
。
写在前面
这里主要回顾两篇文章:
- 如何安装
openldap
:https://newsn.net/say/openldap.html openldap
如何初始化:https://newsn.net/say/openldap-init.html
本文中涉及到了好几条不同的命令,但是涉及到的命令参数都是一致的。列举如下:
- -x:使用简单认证方式。
- -H:指定LDAP服务器的地址和端口。
- -D:指定用于身份验证的用户DN。
- -w:指定用户的密码。
- -b:指定基本搜索DN,即搜索的起点。
- "(objectClass=inetOrgPerson)":指定要搜索的过滤条件。
添加新用户
初始化组织结构base.ldif
文件后,就可以通过users.ldif
添加新用户了。参考\etc\ldif\users.ldif
文件,创造一个新的文件\etc\ldif\users2.ldif
。
dn: uid=sunan,ou=People,dc=my-domain,dc=com
cn: ssnn
sn: Hacker
objectClass: person
objectClass: inetOrgPerson
userPassword: sunanpassword
具体的参数意义,这里不做深入探讨。只需要说明一下:
dn
就是这个用户的唯一标识。objectClass
属性可以定义多个,并不会相互覆盖。
执行命令:
ldapadd.exe -v -x -D "cn=Manager,dc=my-domain,dc=com" -f ..\etc\ldif\users2.ldif -W
修改密码
编辑\etc\ldif\users3.ldif
文件:
dn: uid=sunan,ou=People,dc=my-domain,dc=com
changetype: modify
replace: userPassword
userPassword: sunanpassword2
执行命令:
ldapmodify.exe -v -x -D "cn=Manager,dc=my-domain,dc=com" -f ..\etc\ldif\users3.ldif -W
列出用户
ldapsearch -x -D "cn=Manager,dc=my-domain,dc=com" -W -b "dc=my-domain,dc=com" "(objectClass=person)"
本文的例子,返回的数据是:
# extended LDIF
#
# LDAPv3
# base <dc=my-domain,dc=com> with scope subtree
# filter: (objectClass=person)
# requesting: ALL
#
# hacker, People, my-domain.com
dn: uid=hacker,ou=People,dc=my-domain,dc=com
uid: hacker
cn: Sergio
sn: Hacker
objectClass: person
objectClass: top
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 1561
gidNumber: 10037
gecos: Undergrad
homeDirectory: /home/hacker
mail: info@matear.eu
telephoneNumber: 402-640-2560
o: UNL-City
ou: Arts & Sciences
l: Comp Sci
shadowLastChange: 14333
shadowMax: 99999
shadowWarning: 7
userPassword:: T25lVHdvMjAxMg==
# sunan, People, my-domain.com
dn: uid=sunan,ou=People,dc=my-domain,dc=com
cn: ssnn
sn: Hacker
objectClass: person
objectClass: inetOrgPerson
uid: sunan
userPassword:: c3VuYW5wYXNzd29yZDI=
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
删除用户
准备配置文件,执行命令:
ldapdelete -x -D "cn=Manager,dc=my-domain,dc=com" "uid=sunan,ou=People,dc=my-domain,dc=com" -W
注意这里的删除的用户dn
,和最初的添加用户时的dn
设置一致。
删除成功的话,没有回显。失败的话,会有失败原因回显。
结语
使用原生命令行模式,对用户成员进行增删改查的基本操作就是这样的。虽然没有列出所有的可能使用情形,就算抛砖引玉了。更多ldap
的经验文章,请参考:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。