我在fedora 20 上安装了openldap 服务器,并尝试用它来管理bugzilla 帐户。所以我首先为我的域配置它,加上设置密码:
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}...
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}...
-
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com
-
replace: olcSuffix
olcSuffix: dc=example,dc=com
并运行:
ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f ./initial.ldif
之后我尝试添加测试用户:
# User account
dn: uid=user1,ou=people,dc=example,dc=com
cn: User Name
givenName: Name
sn: User
uid: user1
mail: email@domain
objectClass: top
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
userPassword: {CRYPT}*
并调用 ldapadd
ldapadd -v -v -f ./useradd.ldif -x -D "cn=admin,dc=example,dc=com" -w pass
但它失败了,说它不知道inetOrgPerson。
所以我尝试用这样的类附加方案:
ldapadd -v -f ./inetorgperson.ldif -x -D "cn=admin,dc=example,dc=com" -w pass
但它失败并显示有关错误登录名/密码的消息,
现在问题开始了:
我认为 cn=config 和我使用 cn=admin 的问题(这是我使用 ldap 的第一天),所以我使用了:
dn: olcDatabase={0}config,cn=config changetype: 修改替换: olcRootDN olcRootDN: cn=admin,dc=example,dc=com
并且whoa ldapadd -v -f ./inetorgperson.ldif -x -D "cn=admin,dc=example,dc=com" -w pass start 有效,但 useradd 失败:
ldap_add: 没有这样的对象 (32)
加上重新启动 slapd 后,我得到了:
只有rootdn在后缀下才能设置
那么任何人都可以给我建议如何使用“uid”,“mail”和密码字段添加有关用户的新openldap记录吗?
我解决了问题。有两个问题: 1)如何添加模式?感谢OpenLDAP 无法添加新架构 ,我通过对 ldapadd 使用“-Y external”解决了这个问题
2)初始配置,有olcDatabase={1}monitor,cn=config 也应该改成能正常工作的slapd。