LDAP数据库相关增删查改操作:
操作LDAP的方式有很多,下面以bash下用openldap-clients 套件提供的工具来进行。
1、初始化数据
这一步通常是由特定的应用程序根据其自身使用的需要创建的。包括两部分的内容:
a、创建.schema文件,该文件定义了后面ldap
中存放对象的类型和属性,这已经在上面sldapd.conf文件中定义;
b、初始化数据结构,其结构必须由上面的.schema文件已经定义的,并由应用程序读取和使用。
初始化文件通常为.ldif 结尾,称为LDIF数据交换格式。这种格式是行界定、冒号分隔的属性-值对。例如:
引用
dn: dc=ldapuser1,ou=People,dc=test,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
....
导入时,执行:
# ldapadd -x -h 192.168.1.10 -D 'cn=admin,dc=test,dc=com' -W -f
info.ldif
ldapadd 命令各参数含义如下:
-x 为使用简单密码验证方式
-D 指定管理员DN(与slapd.conf中一致)
-W 为管理员密码,可以使用-w password 直接输入密码
-f 为初始化数据LDIF的文件名
-h 为操作的服务器IP地址
2、搜索操作
LDAP是读优化数据库,因此,读的速度很快,也很常用。但与关系数据库不同,其以树结构形式读取数据,若不添加过滤,会显示匹配节点下所有节点的内容。若以ldif
的形式表达,刚开始可能不太习惯。
# ldapsearch -x -b 'dc=test,dc=com'
首先要留意的是,ldapsearch 不需要提供验证信息。因为正如前面提到的,LDAP 默认供任何人可读。
-b 后面定义搜索节点位置,即从该节点往其子节点进行搜索
3、身份验证
修改或添加内容需进行用户验证,可通过下面的命令确认验证信息:
# ldapwhoami -x -D 'cn=ldapuser1,dc=test,dc=com' -w
'yourpasswd'
dn:cn=admin,dc=test,dc=com
Result: Success (0)
4、修改操作
修改内容通常由LDIF 文件提供。因此,可先用ldapsearch 导出节点内容:
# ldapsearch -x -LLL -b 'dc=test,dc=com'
-LLL 表示不输出注释内容,以便后续重新导入。
其实也可以使用文件进行批量修改,我们只要把需要修改信息写入文件即可,比如:
dn: uid=ldapuser1,ou=People,dc=test,dc=com
changetype: modify
replace: uidNumber
uidNumber: 1000
把以上内容写入test.ldif中,运行如下命令:
ldapmodify -x -D "cn=admin,dc=test,dc=com" -w yourpasswd -f
test.ldif
a、ldapadd 与ldapmodify -a 作用相同
b、如果在添加或修改时,报Naming
violation等错误,则说明添加或修改的内容不符合schema中定义的对象属性规范,需修改后才能重新操作。
5、删除操作
删除时,给出DN即可:
# ldapdelete -x -D 'cn=admin,dc=test,dc=com' -w yourpasswd -r
'dc=test,dc=com'
-r 表示以递归模式删除,即删除该节点下面的所有子节点。
------------------ 原文:https://blog.csdn.net/hitabc141592/article/details/22931179