阿男的小窝

View the Project on GitHub

OpenLDAP的安装与基本使用方法(七)

在这篇文章中,我们将学习如何修改以及删除数据库中的数据。

修改数据

我们可以使用ldapmodify指令来修改数据。修改的具体内容同样是通过ldif文件来表示:

$ cat modify.ldif
dn: uid=weli,ou=Users,dc=my-domain,dc=com
changetype: modify
replace: title
title: Senior Software Engineer

从文件内容可以看到我们通过dn来指定具体要修改哪条数据。此外,我们指定了changetype为modify,说明是要修改这条数据的内容。 然后我们通过ldapmodify指令来读入这个ldif文件完成数据修改:

$ cat modify.ldif | ldapmodify -h localhost -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret
modifying entry "uid=weli,ou=Users,dc=my-domain,dc=com"

最后我们通过ldapsearch来确认上条数据的修改:

$ ldapsearch -LLL -h localhost -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -b 'ou=Users,dc=my-domain,dc=com'

可以看到title已经被修改了:

有关ldapmodify的详细说明可以查看这篇文档:

http://docs.oracle.com/cd/E19693-01/819-0995/bcacx/index.html

删除数据

我们可以使用ldapdelete命令来删除数据。比如我们要删除uid=weli这条数据,可以这样做:

echo "uid=weli,ou=Users,dc=my-domain,dc=com" | ldapdelete -h localhost -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -r

其中-r的含义和rm -r一样,是recursive的意思。对于删除上面uid=weli这条数据来讲这个选项用处不大,如果我们要删除ou=Users,dc=my-domain,dc=com及其包含的所有用户数据, 就必须指定-r选项。

执行完上完的命令,我们可以验证数据库中这条数据已经被删除了。可以查询被删掉的数据试试看:

ldapsearch -h localhost -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -b 'dc=my-domain,dc=com' 'uid=weli'

执行结果如下:

可以看到数据库中已经没有这条数据。接下来利用本文上篇中介绍的方法,我们再使用ldapadd命令把这条数据添加回来,因为后续要用到uid=weli这条数据。具体过程就不在这里重复了。