我即将建立一个LDAP目录。它被用作将用户权限从web应用程序传递到WebDav文件系统访问的工具,例如,将用户添加到web平台应允许以相同的凭据登录到文件系统。没有任何其他的用途。在这个德语教程 (它鼓励在dc
上使用属性c
、o
、ou
等)之后,我配置了以下后缀和根:
suffix "ou=webtool,o=myOrg,c=de"
rootdn "cn=ldapadmin,ou=webtool,o=myOrg,c=de"
服务器启动,我可以通过LDAP管理连接到它,它报告“LDAP错误:对象缺乏”。好吧,还没有任何物体。
现在,我希望从shell创建根元素和管理元素。我创建了一个init.ldif
文件:
dn: ou=webtool,o=myOrg,c=de
objectclass: dcObject
objectclass: organization
dc: webtool
o: webtool
dn: cn=ldapadmin,ou=webtool,o=myOrg,c=de
objectclass: organizationalRole
cn: ldapadmin
试图加载文件时会遇到一个错误,告诉我不允许使用ou
:
server:~ # ldapadd -x -D "cn=ldapadmin,ou=webtool,o=myOrg,c=de" -W -f init.ldif
Enter LDAP Password:
adding new entry "ou=webtool,o=myOrg,c=de"
ldap_add: Object class violation (65)
additional info: attribute 'ou' not allowed
除了后缀之外,我在任何地方都不使用ou
,所以问题是:这里不允许使用吗?这里允许什么?
发布于 2012-12-04 07:28:02
元素的创建有大量的依赖关系,如果您不知道这个概念,那么错误消息就会相当混乱。objectclass
不一定是数据库根节点的dcObject
,因为当您阅读几个教程时,它可能会猜测。相反,它必须与对象的类型相对应:在这里,对于以ou=
开头的名称,它必须是organizationalUnit
。我在这些表中找到了这条信息。此外,object类指示必须和可以在记录中添加哪些属性。在这里,organizationalUnit
必须有一个ou:
条目,并且不能没有dc:
或o:
条目。因此,健康的init.ldif
文件如下所示:
dn: ou=webtool,o=myOrg,c=de
objectclass: organizationalUnit
ou: LDAP server for my webtool
dn: cn=ldapadmin,ou=webtool,o=myOrg,c=de
objectclass: organizationalRole
cn: ldapadmin
注意:该页面还声明:“虽然许多objectClasses显示no必须具有属性,但您必须(哎哟)遵循任何层次结构…来确定这是否是真正的情况。”我认为这意味着我的根记录必须为c=
和o=
(c:
和o:
)提供必须字段,但事实并非如此。
https://serverfault.com/questions/453786
复制相似问题