OpenLDAP架构位置(cn = schema,cn = config)是否存在?

我们正在尝试启动并运行OpenLDAP的一个实例。 我正在使用ApacheDS作为浏览器。 当我在LDAP数据库中创build对象时,我发现许多对象和属性不符合我打算使用它的目的。 所以,我自然想要扩展架构。

我遵循http://www.rainingpackets.com/how-to-add-schema-file-openldap-24/中的说明,我看到有一个“path”cn = schema,cn = config。 我应该能够通过我的LDAP浏览器看到这个path吗? 每当我尝试连接到该位置,它出错(说无效凭据)。

README的path是“dc = maxcrc,dc = com”,ApacheDS证实了这一点,我可以在这里login。

如果有人可以提供一些OpenLDAP的头脑的洞察力,我会很感激。

MJ

不,“你”不应该。 默认情况下,只有“cn = config”(如果已定义)的rootdn将能够从cn = config DSE中读取。

$ sudo ldapsearch -H ldapi:/// -Y external -b cn=config olcrootdn=* olcrootdn olcaccess SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 # extended LDIF # # LDAPv3 # base <cn=config> with scope subtree # filter: olcrootdn=* # requesting: olcrootdn olcaccess # # {0}config, config dn: olcDatabase={0}config,cn=config olcAccess: {0}to * by * none olcRootDN: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth 

通常在您的OpenLDAP安装中,您至less有两棵树:

  • 一个是DIT(“数据信息树”),您可以在其中input节点
  • 一个是cn = config,其中放置了configuration信息(可以使用相同的LDAP命令操作,因为它本身设置为DIT!)。

通常情况下,cn = config对DIT的任何帐户都是不可读的(由于明显的原因,hm?)。 所以为了访问cn = config,你通常使用一个专用帐号,这个帐号是由数据库的olcRootDN属性决定的(在我的例子中是“cn = admin,cn = config”)。 但是,在某些发行版中,此帐户可能不存在或没有设置初始密码。

要改变这一点,你会做以下事情:

  1. 使用sudo slappasswdencryption密码
  2. 通过修改LDAP条目来设置密码:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// dn: olcDatabase={0}config,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,cn=config \- add: olcRootPW olcRootPW: <encrypted password>

编辑:在短划线前面的反斜杠; 我只是为了格式化的原因添加它。