我们在 Ubuntu 10.04 上运行 OpenLDAP。我能够使用cn=admin,dc=ourcompany,dc=com
我的密码访问和使用前端。
但是我无法更改存储的服务器配置(例如日志级别),cn=config
因为我似乎没有后端的有效用户/密码?
一些例子:
# ldapsearch
SASL/DIGEST-MD5 authentication started
Please enter your password:
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
或者
# ldapadd -x -D "cn=admin,cn=config" -W -f "my.ldif""
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
我如何为 创建用户cn=config backend
?
答案1
Ubuntu 默认配置将 cn=admin,dn=example,dn=com 设置为后端的 root dn,但需要以 root 身份进行 SASL 身份验证才能修改在线配置。您可以使用:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcAccess
列出你的配置的 ACL
要添加您的 ldif 文件,请尝试:
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f "my.ldif"
假设 LDAP 服务器位于本地机器上。如果希望原始命令有效,则需要添加 cn=admin,cn=config 用户,并将其指定为 cn=config 数据库的 rootdn,或设置 ACL 以授予其访问权限。
我无法使用 ldap 工具添加 rootdn,即使以 root 身份,我也无法添加/修改 cn=config DIT 的 ACL。我假设虽然 root 被授予了管理员访问权限,但添加 rootDN 是不够的。因此,要为在线配置添加 rootDN,您需要手动编辑配置。不建议这样做,因为它可能会破坏 slapd。
您需要使用 slappasswd 生成密码哈希,例如“somesecret”slappasswd 可能会生成 {SSHA}Hg/mI0rBWab3HCysr55B4Ew7/QmK0LBa
现在您可以添加 RootDN。首先停止 slapd
sudo service slapd stop
接下来使用您选择的编辑器(例如 nano)编辑 /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
sudo nano /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
然后在“structuralObjectClass: olcDatabaseConfig”行之前添加以下几行
olcRootDN: cn=admin,cn=config
olcRootPW: {SSHA}Hg/mI0rBWab3HCysr55B4Ew7/QmK0LBa
然后重新启动 slapd
sudo service slapd start
现在,您可以使用 cn=admin,cn=config 进行简单的绑定来修改 cn=config DIT;但是,我认为这不是一个好主意。我更喜欢通过 ssh 进入服务器并以 root 身份访问配置。然而,有些人认为这完全违背了在线配置的优势,在线配置中,只要您拥有必要的凭据,就可以使用任何 LDAP 浏览器修改配置,而无需停止 slapd。