在一台ldap服务器上多个rootdn

我有一个OpenLDAP服务器在其configuration文件中包含以下内容:

suffix "o=abpriv" rootdn "cn=Manager,o=abpriv" 

我正在build立一个新的项目,将使用以下内容:

 suffix "o=cbpriv" rootdn "cn=Manager,o=cbpriv" 

这两个可能共存于同一个OpenLDAP服务器实例吗?

我猜这是不可能的,我的select将是

  • 在同一个盒子上的另一个端口上设置第二个实例
  • '重构'现有的数据(甚至有可能吗?我是LDAP的新手),所以根是b.priv ,rootdn是cn=Manager,o=b.privo=abprivo=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> 

你应该添加一个新的根。