(openldap)ldappasswd命令不适用于uid,但使用cn =全名

时间:2017-02-13 21:14:47

标签: ldap openldap

我正在尝试向我的OpenLDAP服务器中的1300个用户添加密码以便工作。

如果我使用以下命令

,我可以为用户添加密码
SELECT '(''' + COALESCE(SomeVarCharColumn, '') + ''',' +
       COALESCE(CONVERT(NVARCHAR(MAX), SomeIntColumn), '') + ',' + 
       COALESCE(CONVERT(NVARCHAR(MAX), SomeOtherIntColumn), '') + ')'
FROM SomeTable

我有1300多人,我正在添加密码,有些用户名称不同,但有不同的用户名。

尝试使用UID时,我执行以下命令,但找不到该用户。除了为uid = testu切换cn = test user之外,该命令是相同的。

ldappasswd -s newpasswd -w adminpw -D "cn=admin,dc=school,dc=private" "cn=test user,dc=school,dc=private"

根据我在网上看到的所有指南,这应该有效。为什么我得到No this object(32)错误?

请注意我目前正在测试服务器上工作。用户可以进行测试。 “cn = Test User”“uid = testu”“uidNumber = 1001”用户位于ldap“dc = school,dc = private”的基础中有一个名为“People”的组,gid = 501

我使用http://www.thegeekstuff.com/2015/02/openldap-add-users-groups/作为指南以及https://www.digitalocean.com/community/tutorials/how-to-manage-and-use-ldap-servers-with-openldap-utilities#various-other-ldap-commands

在添加用户/修改它们时我是ldap新手,但我确实构建了服务器,确实在它们之间设置了复制并添加了  对他们进行TLS加密。

1 个答案:

答案 0 :(得分:0)

每个LDAP条目都是名称 - 值对的属性集合。通常,您选择name=value形式的单个属性作为条目的相对可分辨名称(RDN)。明智的是,您选择具有唯一值的属性。

所有条目都是目录信息树(DIT)中的节点。条目的路径由按照惯例以叶对根(从左到右)顺序通过逗号连接的一系列RDN组成。此路径称为专有名称(DN),用于标识DIT中的用户。

当您选择RDN为cn=test user时,您无法使用DN uid=testu, dc=school, dc=private来解决用户,即使值为uid的属性testu属于用户输入。