我遇到了在CentOS上设置LDAP服务器的死锁。 我使用/etc/openldap/slapd.d下的在线配置文件 文档告诉您不要手动修改这些文件,并且文件是校验和的。 但我不能使用ldapmodify,因为我无法登录(简单绑定) - 而且我无法登录,因为我无法为用户设置密码 - 我无法使用为用户设置密码,因为我无法使用ldapmodify,因为我无法登录,因为我无法设置密码,因为......
我当然可以通过直接编辑文件来设置它 - 我已经完成了它,并且它可以工作。 但它只是让我感到烦恼,我找不到办法做到这一点"正确"。
答案 0 :(得分:3)
Ubuntu和其他使用debian软件包的发行版尝试超级智能并为您设置一切 - 当您想要进行非交互式安装时,这确实会成为一个问题,因为debconf将设置随机管理密码并配置根据您的机器名称的base-DN。您可以猜测基本DN - 但是您无法猜出密码,并且在安装后从debconf-DB中删除它,您无法读出它。
但是,您可以在安装软件包之前配置密码和DN :
export DEBIAN_FRONTEND=noninteractive
sudo debconf-set-selections <<EOF
slapd slapd/internal/generated_adminpw password changeme
slapd slapd/password2 password changeme
slapd slapd/internal/adminpw password changeme
slapd slapd/password1 password changeme
slapd slapd/domain string example.com
slapd shared/organization string example.com
EOF
sudo apt-get install -y slapd ldap-utils
在这里非常小心你的空格:在密码之前放置两个空格将密码设置为__changeme_(即:( blankspace )changeme)
感谢OpenStackPro了解如何配置选择
您可以使用
测试您的设置ldapsearch -x -D "cn=admin,dc=example,dc=com" -w "changeme"
哪个应输出类似
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
这意味着,你的LDAP数据库中还没有任何内容,但至少你能够登录: - )
如果你得到像
这样的东西ldap_bind: Invalid credentials (49)
您需要仔细检查您的管理员DN和密码。您可以使用
检查您的admin-DNsudo slapcat -n0 | grep olcRootDN
安装软件包
sudo yum -y install openldap openldap-servers openldap-clients
首先使用
获取密码哈希slappasswd -s changeme
请注意,CentOS-package使用 my-domain.com 而不是 example.com ,因此您可能需要相应地调整命令。
在 init.ldif 等文件中创建初始ldif:
dn: dc=my-domain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: my-domain.com
dc: my-domain
dn: cn=admin,dc=my-domain,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}rX8oWGKW6B7mKY+nUJhrv4g1pPH5KtQg
要将此配置写入LDAP使用:
sudo slapadd -F /etc/openldap/slapd.d -b "cn=config" -l init.ldif
同样,您可以使用
测试您的设置ldapsearch -x -D "cn=admin,dc=my-domain,dc=com" -w "changeme"
(见上文&#34; Ubuntu&#34;)