我有一个关于OpenLdap和导入ldiff的问题。我让Openldap在Windows上运行。
我的slapd.conf:
database mdb
suffix "dc=aaa,dc=com"
rootdn "cn=Manager,dc=aaa,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory ./data
searchstack 20
# Indices to maintain
index mail pres,eq
index objectclass pres
index default eq,sub
index sn eq,sub,subinitial
index telephonenumber
index cn我可以使用apache active directory查看我的连接。
我能看到dc=aaa,dc=com。
我正在尝试导入一个ldif文件。
在顶部,它包含:
dn: cn=ab3java,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: ab3java当我跑的时候
ldapmodify -a -x -D "cn=Manager,dc=aaa,dc=com" -w secret -H ldap:// -f ab3java.ldif我得到以下错误:
adding new entry "cn=ab3java,cn=schema,cn=config"
ldap_add: Insufficient access (50)我在ldap浏览器中看不到cn=config。
请给我建议。如何才能获得正确的访问权限?
问候,B。
发布于 2016-08-03 20:12:50
如果不将服务器迁移到联机配置数据库,则无法执行您想要执行的操作。您的服务器可能没有配置为使用在线配置数据库,查看如何使用slapd.conf进行配置,而不是/etc/openldap/slapd.d下的文件。可以同时使用slapd.d和slapd.conf,因此您需要检查。如果openldap没有配置为使用在线配置,那么您不能在服务器运行时更改其配置。您需要编辑/etc/openldap/slapd.conf并重启服务器。
在openldap中可以有多个后端数据库,每个后端数据库都有自己的后缀和访问控制。您在上面的示例中为其定义了访问控制的数据库是下面可以访问的数据库dc=aaa,dc=com。您尝试更新的数据库具有后缀cn=config。它是openldap存储其自己的配置的数据库(如果使用在线配置选项进行了配置)。因此,提供的凭据将不匹配。
一般来说,建议使用在线配置数据库,因为它是运行openldap的一种更好的方法。有关cn=config数据库的更多信息,请参阅以下链接:http://www.zytrax.com/books/ldap/ch6/slapd-config.html。本书还包含有关如何从静态配置迁移到在线配置的信息。
通常,openldap配置数据库将受到保护,以便只有运行ldap服务器的计算机上的root用户才能访问它。
您可以通过查看openldap /etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif的配置文件来检查这一点。应该有一行类似于下面的行:
olcAccess: {0}
to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
manage
by * none这意味着唯一有权访问配置数据库的用户将是本地系统上的root用户。您可以添加根用户add和密码,但这只会使您的ldap服务器受到远程攻击。
https://stackoverflow.com/questions/37071391
复制相似问题