我是 LDAP 新手,正在尝试为计算机集群安装它。我已经阅读了这份技术快速入门指南https://www.openldap.org/doc/admin26/quickstart.html。我已经完成了直到第 8 步的所有步骤,但是第 9 步的 slapd 配置命令给我带来了麻烦。
该指南指出 - “您现在可以通过运行以下命令导入配置数据库以供 slapd(8) 使用:su root -c /usr/local/sbin/slapadd -n 0 -F /usr/local/etc/slapd.d -l /usr/local/etc/openldap/slapd.ldif
”
我运行的命令是sudo /usr/local/sbin/slapadd -n 0 -F /usr/local/etc/slapd.d -l /usr/local/etc/openldap/slapd.ldif
命令中列出的所有目录都存在,并且相应的文件、符号链接和目录也存在。当我运行命令时,我遇到了这个错误slapadd: could not add entry dn="cn=config" (line=1): Closing DB...
在进行故障排除时,我返回到步骤 8。它的末尾指出“请注意,在启动 slapd(8) 之前,指定的 olcDbDirectory 必须存在”。我的 slapd.ldif 文件中的 olcDbDirectory 是/usr/local/var/openldap-data
该目录存在,但我无法进入它,因为我没有权限。我在想,也许这可能是我遇到错误的原因之一。另外,在我的slapd.d
目录(/etc/ldap/slapd.d
)中,我有一个目录和一个文件。这些是目录的内容:'cn=config' 'cn=config.ldif'
我正在阅读其他帖子并读到也许不应该有两个条目。但是,我没有删除任何内容,因为我不确定。
我应该采取什么步骤来解决这个问题?我还没有发现很多其他人有同样的错误。需要注意的重要一点是,我们之前曾多次尝试安装 LDAP。这些尝试要么失败了,要么给我们带来了不令人满意的结果,所以我们最终卸载了它们。也许我们没有卸载导致此错误的每个文件。我感谢有关此问题的所有帮助。如果我应该提供更多信息,请告诉我。
谢谢。
答案1
这里涉及到两个数据库:
-n 0
是个配置数据库(前缀cn=config
),作为一堆单独的 LDIF 文件存储在/usr/local/etc/slapd.d
.-n 1
是你的第一个数据数据库(前缀o=Foo
或dc=foo,dc=bar
其他),作为 LMDB 或 BDB 数据库存储在/usr/local/var/openldap-data
.
您正在尝试将条目导入到配置数据库存储在 /etc 中,因此 /var 中的目录此时还无关紧要。
看来您实际上可能遇到相反的问题:您正在尝试添加以下条目:已经存在,正如您提到的,您的/etc/ldap/slapd.d
目录已经具有它们的相应.ldif
文件。因此,您应该首先从 slapd.d/ 目录中删除所有文件,然后再尝试使用“slapadd”导入它们。
(或者,您可以从“旧样式”开始slapd.conf
,然后使用 slapd 将其转换为 LDIF 格式slapd -f slapd.conf -F slapd.d
。)
另一个问题是,您正在讨论同一事物的两个不同路径 - 首先您导入到/usr/local/etc/slapd.d
,但后来您查找到/etc/ldap/slapd.d
,这是不一样的。
(总的来说,听起来你有一个系统 OpenLDAP 安装和自定义编译的,两者都使用不同的路径 - 这不是一件好事。我真的建议清理这个烂摊子并确保你有一个或者另一个安装了...
事实上,我还建议在新鲜的系统而不是已经运行了一堆其他东西的系统。)