我们在 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
Run Code Online (Sandbox Code Playgroud)
或者
# ldapadd -x -D "cn=admin,cn=config" -W -f "my.ldif""
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
Run Code Online (Sandbox Code Playgroud)
如何创建用户cn=config backend
?
Ubuntu默认配置为后端设置cn=admin,dn=example,dn=com为root dn,但需要以root身份进行SASL认证修改在线配置。您可以使用:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcAccess
Run Code Online (Sandbox Code Playgroud)
列出配置的 ACL
添加您的 ldif 文件尝试:
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f "my.ldif"
Run Code Online (Sandbox Code Playgroud)
假设 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
Run Code Online (Sandbox Code Playgroud)
接下来使用您选择的编辑器(例如 nano)编辑 /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
sudo nano /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
Run Code Online (Sandbox Code Playgroud)
然后在“structuralObjectClass: olcDatabaseConfig”行之前添加以下几行
olcRootDN: cn=admin,cn=config
olcRootPW: {SSHA}Hg/mI0rBWab3HCysr55B4Ew7/QmK0LBa
Run Code Online (Sandbox Code Playgroud)
然后重启slapd
sudo service slapd start
Run Code Online (Sandbox Code Playgroud)
您现在可以通过使用 cn=admin,cn=config 的简单绑定来修改 cn=config DIT;然而,我不相信这是一个好主意。我更喜欢通过 ssh 进入服务器并以 root 身份访问配置。然而,有些人认为这会破坏在线配置的全部优势,只要您拥有必要的凭据,您就可以使用任何 LDAP 浏览器修改配置而无需停止 slapd。
归档时间: |
|
查看次数: |
18365 次 |
最近记录: |