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

接下来让我们创建用户组及用户数据文件。首先创建usergroup.ldif,文件内容如下:

dn: ou=Users,dc=my-domain,dc=com
ou: Users
cn: LDAP Users
description: Users of LDAP
objectClass: groupOfNames
member: uid=weli,ou=Users,dc=my-domain,dc=com

然后创建weli.ldif,内容如下:

dn: uid=weli,ou=Users,dc=my-domain,dc=com
ou: Users
uid: weli
cn: Weinan Li
sn: Weinan
givenName: Weinan
title: Software Engineer
description: Systems Integration and IT for Example.Com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson

如上所示,我们创建了两条数据,他们的dn及objectClass分别为:

dn: ou=Users,dc=my-domain,dc=com
objectClass: groupOfNames
dn: uid=weli,ou=Users,dc=my-domain,dc=com
ou: Users
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson

其中Users为用户组数据,而uid=weli这条用户数据属于Users用户组。注意到数据所使用的objectClass都包含在我们之前导入的schema当中,如果没有导入schema,对应的数据类型将无法使用。比如用户数据中的”homePhone”等属性也就无法使用。接下来将这两个文件中的数据导入:

$ ldapadd -H ldapi:/// -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -f usergroup.ldif
adding new entry "ou=Users,dc=my-domain,dc=com" 
$ ldapadd -H ldapi:/// -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -f weli.ldif
adding new entry "uid=weli,ou=Users,dc=my-domain,dc=com"

接下来我们来做数据查询进行验证:

$ ldapsearch  -LLL -H ldapi:/// -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -b  'ou=Users,dc=my-domain,dc=com'

结果如下:

dn: ou=Users,dc=my-domain,dc=com
ou: Users
cn: LDAP Users
description: Users of LDAP
objectClass: groupOfNames
member: uid=weli,ou=Users,dc=my-domain,dc=com

dn: uid=weli,ou=Users,dc=my-domain,dc=com
ou: Users
uid: weli
cn: Weinan Li
sn: Weinan
givenName: Weinan
title: Software Engineer
description: Systems Integration and IT for Example.Com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson 

从上面的ldapsearch查询可以看到导入的三条数据都在数据库当中了。其中-LLL选项是精减输出,去到不必要的内容。我们也可以使用filter来查所需数据:

$ ldapsearch -LLL -H ldapi:/// -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -b 'dc=my-domain,dc=com' 'uid=weli'
dn: uid=weli,ou=Users,dc=my-domain,dc=com
ou: Users
uid: weli
cn: Weinan Li
sn: Weinan
givenName: Weinan
title: Software Engineer
description: Systems Integration and IT for Example.Com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson

可以看到,通过指定’uid=weli’,我们只查询这个用户的数据。‘uid=weli’这个查询条件叫做filter。有关filter的使用可以查看ldapsearch的manpage。这篇文章就介绍到这里。我们学习了OpenLDAP的安装,配置,导入schema,添加数据,查询数据。在本文的下篇中,我将介绍如何修改数据,删除数据,以及如何配置httpd使用ldap数据库进行用户认证。