我们正在尝试启动并运行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有两棵树:
通常情况下,cn = config对DIT的任何帐户都是不可读的(由于明显的原因,hm?)。 所以为了访问cn = config,你通常使用一个专用帐号,这个帐号是由数据库的olcRootDN属性决定的(在我的例子中是“cn = admin,cn = config”)。 但是,在某些发行版中,此帐户可能不存在或没有设置初始密码。
要改变这一点,你会做以下事情:
sudo slappasswdencryption密码 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>
编辑:在短划线前面的反斜杠; 我只是为了格式化的原因添加它。