我在 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
和哇 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
我解决了这个问题。有两个问题:1)如何添加架构?感谢OpenLDAP 无法添加新架构 我通过使用“-Y external” ldapadd 解决了这个问题
2)初始配置,有 olcDatabase={1}monitor,cn=config,也应该更改为使 slapd 正常工作。