OpenLDAP - 修复或恢复损坏的目录
2023-06-08 08:00:00
·
飞浪
·
·考克斯
让我们讨论一下OpenLDAP。LDAP是一件很棒的事情,但是当你过度依赖它时,砰!你就完蛋了。系统重启后它不会重新启动,它不允许使用你知道昨天还有效的帐户进行身份验证,或者更糟的是,你的本地服务
让我们讨论一下 OpenLDAP。LDAP 是一件很棒的事情,但是当你过度依赖它时,砰!你就完蛋了。系统重启后它不会重新启动,它不允许使用你知道昨天还有效的帐户进行身份验证,或者更糟的是,你的本地服务器登录似乎挂起或完全超时。那么我们该怎么办?首先,你必须登录。如果你不幸将本地服务器登录绑定到 LDAP 并且它们不再起作用(你确实有几个具有管理员权限的本地帐户,对吧?),你要么必须使用备份本地帐户,要么使用 root 帐户,要么在单用户模式下重新启动系统并以 root 身份登录。如果你不知道如何做这些事情,我们可以在另一个时间访问该主题。为了我们的练习,让我们假设你以提升的权限登录到 LDAP 服务器本身。以下是一些可以尝试的事情:
典型腐败
- 停止 LDAP 服务器
/etc/init.d/ldap stop
- 使用调试标志手动运行守护进程,以便我们可以看到发生了什么(注意:如果您在初始设置期间指定了加密,请将端口 389 替换为 636)
/usr/sbin/slapd -u ldap -h ldap://127.0.0.1:389/ -d 256
您可能会在这里得到很多东西,如果您看到许多错误或目录似乎已损坏,您将能够分辨出来,因为它可能会在“数据库启动”处停止并挂起。如果它没有自行死机,您将不得不“CTRL-C”。
- 执行恢复(注意:根据目录中记录的大小和数量,此过程可能需要一些时间)
/usr/sbin/slapd_db_recover -h /var/lib/ldap
- 最后重新启动 LDAP 服务器
/etc/init.d/ldap start
休斯顿,我们有问题
有时,LDAP 会因多种原因(文件系统损坏、LDAP 更新或优化期间系统断电等)而严重损坏,以至于上述步骤无法解决问题。我们将不得不采取一些更激烈的步骤。虽然您可以以“root”用户身份在本地登录来执行这些步骤,但如果可能的话,我建议启动到单用户模式。
- 停止 LDAP 服务器
/etc/init.d/ldap stop
- 备份现有结构的时间(注意:如果您在安装期间自定义了 LDAP 位置,则下面显示的路径可能不适合您的情况,下面显示的路径是 OpenLDAP 安装上的默认目录位置)
tar cvf ldap.bkup.tar /var/lib/ldap/*
- 现在我们将尝试另一次恢复;它可能不会比初次尝试更进一步,但它将为以下步骤适当地标记文件
/usr/sbin/slapd_db_recover -h /var/lib/ldap
- 构建一个包含要恢复的结构的 LDIF 文件(注意:如果您在此处收到错误,则可能需要删除除“dn2id”和“id2entery”之外的所有 BDB 文件才能完成命令 - 我们有备份以防万一)
slapcat > ldap.restore.ldif
- 验证我们新创建的定义文件是否包含目录条目(在文本编辑器中查看)。如果不包含(通常会导致文件非常小或“零字节”),我们可以尝试在更深层次上运行恢复例程,以从严重损坏中恢复
/usr/sbin/slapd_db_recover -h /var/lib/ldap -v -c
- 如果没有错误(不太可能出现错误,因为这样可以正常工作,或者当您重复该例程时,我们仍会得到一个空的 LDIF),则重复上一步以创建上述备份 LDIF
- 现在,删除损坏的 LDAP 目录,如下所示(注意:不要惊慌,我们在开始之前已经备份了所有内容)
rm -rf /var/lib/ldap/*
- 需要使用一些基本信息重新创建 DB_CONFIG 文件
echo -en 'set cachesize 0 15000000 1nset_lg_bsize 2097152n' > /var/lib/ldap/DB_CONFIG
- 尝试将备份的 LDIF 文件加载回目录
slapadd -l ldap.restore.ldif
- 确保所有权正确
chown -R ldap:ldap /var/lib/ldap
- 划掉相应的数字,重启服务器
/etc/init.d/ldap start
最后评论
在大多数情况下(我发现五分之四),第一组步骤足以从正常的损坏原因中恢复目录。如果发生严重损坏,在您开始考虑尝试从备份中恢复之前,更长的一系列步骤应该可以挽救大部分(如果不是全部)目录。典型的备份方案(磁带、磁盘等)将无法产生可恢复的 LDAP 结构,因为文件在复制时处于不一致的状态。每晚转储记录并设置到备份位置并可以轻松恢复始终是一个好主意。如果有人感兴趣,我们可以探索其中一些步骤以及如何设置 OpenLDAP。请在下方发表评论和提问,祝你好运。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~