如何使用 ldapdelete 删除设置不正确的 olc 数据库?

如何使用 ldapdelete 删除设置不正确的 olc 数据库?

我一直在走过本教程并不断出现错误 - 可能是因为我手动输入了 - 所以我重试,在输入后执行它

# Load dynamic backend modules
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=example,dc=local
olcDbDirectory: /var/lib/ldap

它起作用了,因此我输入了其余部分并重新执行:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif

现在它说

ldap_add: Other (e.g., implementation specific) error (80)
    additional info: <olcSuffix> namingContext "dc=home,dc=local" already served by a preceding hdb database

我猜测,这意味着它无法完成 ldapadd,因为已经存在一个同名的 ldapadd。

我尝试使用(从这里):

sudo ldapdelete 'dc=example,dc=local'

它要求输入密码,但我的密码不起作用,并且在初始设置中没有设置任何内容作为 olcRootPW。

在这种情况下,我该如何使用 ldapdelete 以便重新设置该数据库?

答案1

通常,初始设置过程cn=配置并不容易,而且在这个过程中有很多方法会让你自食其果。不过,请记住cn=config 是存储在 LDIF 格式文件中slapd.d(通常在 中${prefix}/etc/openldap/)并且可以手动编辑(小心地编辑,并且不要运行 slapd)。因此,如果您将自己锁定在外(没有 RootDN/RootPW)或完全损坏了您的cn=配置不管怎样,你总是可以在那里修复它。

进行基本配置的一个好方法是按照旧风格进行slapd配置文件时尚,然后将其转化为slapd.d(使用slaptest -f -F)一旦基本内容(数据库,模块和 RootDN/RootPW)被排序。

答案2

无法弄清楚如何删除数据库,但我刚刚开始,所以我清除了 slapd 和 ldap-utils。

sudo apt-get purge slapd ldap-utils

并重新安装。

相关内容