我有一个OpenLDAP服务器在其configuration文件中包含以下内容:
suffix "o=abpriv" rootdn "cn=Manager,o=abpriv"
我正在build立一个新的项目,将使用以下内容:
suffix "o=cbpriv" rootdn "cn=Manager,o=cbpriv"
这两个可能共存于同一个OpenLDAP服务器实例吗?
我猜这是不可能的,我的select将是
b.priv ,rootdn是cn=Manager,o=b.priv和o=abpriv和o=cbpriv 还有其他的select吗?
多个DIT似乎是可能的。 看看这个文档和例子 。 至于这样做的谨慎,我不能说出你的要求。 在追求之前完全理解文档似乎是明智的。 也许一个OpenLDAP的特定组可以帮助你评估你的想法。 但是要注意的是,如果你没有做完功课,他们可能会变得很糟糕。
\\格雷格
您可以使用OpenLDAP创build多个独立的数据库。 您将在文档中find详细信息。
在非标准端口上设置第二个实例并不是一个好主意,恕我直言,因为在使用此实例的任何地方都必须小心指定正确的端口。
我对LDAP也很陌生,但是我能做到这一点,所以我报告了我所做的操作,希望能够有用。
我已经在邮件列表回复中find了这些信息。
我需要以root用户身份工作。
首先使用该命令
slapcat -n0
显示LDAPconfiguration。
你应该看到这样的东西:
dn: olcDatabase={1}hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcDbDirectory: /var/lib/ldap olcSuffix: <your old root DN> ...
转到/var/lib/ldap并为您的新树创build一个子文件夹。 确保这个文件夹有755权限和适当的所有者和组(在我的情况下,它必须是openldap openldap )。
用这种方法创build一个LDIF文件:
dn: olcDatabase={2}hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {2}hdb olcDbDirectory: /var/lib/ldap/<NEWDIR> olcSuffix: <new root DN> olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou s auth by dn="cn=Manager,<new root DN>" write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=<new root DN>" write by * read olcLastMod: TRUE olcRootDN: cn=Manager,<new root DN> olcRootPW: <manager password>
然后打电话
ldapadd -Y EXTERNAL -H ldapi:/// -f <your-ldif-file>
你应该添加一个新的根。