我们的公司LDAP目录位于Snow Leopard Server开放目录设置中。我正在尝试使用该ldapsearch
工具导出.ldif文件,以导入到另一个外部LDAP服务器中以进行外部身份验证;基本上是试图能够在内部和外部使用相同的凭据。
我已经开始ldapsearch
工作,并为我提供了“用户” OU中所有内容的内容和属性,甚至只过滤了我需要的属性:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
这给了我可以导入到远程OpenLDAP服务器的用户和属性的列表。
dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1
但是,当我在OD“组”而不是“容器”上尝试相同的查询时,结果如下所示:
dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3
我真正想要的是从顶部示例中根据用户的组成员资格过滤的用户列表,但看起来成员资格是从组端而不是用户帐户端设置的。必须有一种方法可以对此进行过滤,仅导出我需要的内容,对吗?
memberOf
是一个操作属性,需要显式请求。区区ldapsearch
喜欢这里的建议将不会返回memberOf
,即使它的存在。还应该提到的memberOf
是,通常不默认启用覆盖,尽管我不知道在OS X和Open Directory中如何处理该覆盖。