我即将build立一个LDAP目录。 它被用作一个工具来将用户权限从Web应用程序传递到WebDav文件系统访问,例如,将用户添加到Web平台应允许使用相同凭证login到文件系统。 没有其他用途的意图。 遵循这个鼓励使用属性c , o , ou等dc 德语教程 ,我configuration了以下后缀和root:
suffix "ou=webtool,o=myOrg,c=de" rootdn "cn=ldapadmin,ou=webtool,o=myOrg,c=de"
服务器启动,我可以连接到LDAPpipe理员 ,它报告“LDAP错误:对象缺乏”。 那么,还没有任何物体。
我现在想要从shell创build根和pipe理元素。 我创build了一个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
除了后缀之外,我不在任何地方使用,所以问题是不是在这里允许的? 这里允许什么?
元素的创build有很多的依赖关系,如果你不了解这个概念,那么错误信息就相当混乱。 objectclass不一定是数据库根节点的dcObject ,因为它可能会在您读取多个tutoriales时进行猜测。 相反,它必须对应于对象的types:这里,对于以ou=开头的名称,它必须是organizationalUnit 。 我在这些表格中find了这条信息。 进一步来说,对象类决定哪些属性必须和可以被添加到logging中。 在这里, 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不显示MUST属性,但您必须(遵循)任何层次结构来确定这是否是真实的情况。”我认为这意味着我的根logging必须提供必须字段为c=和o= ( c:和o:分别),但事实并非如此。