我第一次在 RHEL6 上设置 OpenLDAP,并使用 Puppet 进行初始安装/配置。
我相信配置使用的是 slapd.d 方法而不是 slapd.conf 方法。
基本上,我相信 Puppet 已成功创建数据库,我想将其用作配置树的根。这是 slapcat 的输出,显示已创建此数据库:
dn: olcDatabase={3}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {3}hdb
olcDbDirectory: /var/lib/ldap/
olcSuffix: dc=corp.f7
olcRootDN: cn=root,dc=corp.f7
structuralObjectClass: olcHdbConfig
entryUUID: 8fce2bda-78b8-1033-80d2-f79b693c6963
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20140526002936Z
olcAccess: {0}to * by * read
olcRootPW:: e1NTSEF9MGkzazlZdldwMVNpU1FNVjhnNDQ4MHJBNFUra0FUdTI=
entryCSN: 20140526010102.566286Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20140526010102Z
然后按照我在网上找到的示例,我尝试将以下 ldif 文件输入到此命令中:
ldapadd -cxWD cn=root,dc=corp.f7 -W -f /tmp/static.ldif
# User account
dn: uid=jsmith,dc=corp.f7
cn: John Smith
givenName: John
sn: Smith
uid: jsmith
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/jsmith
mail: [email protected]
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
loginShell: /bin/bash
userPassword: {CRYPT}*
但是,我只是得到以下错误输出:
adding new entry "uid=jsmith,dc=corp.f7"
ldap_add: No such object (32)
我不太确定它找不到什么对象...是 dc=corp.f7 吗?
我如何在我创建的数据库中设置组和用户?
谢谢
答案1
首先,你需要为你的用户提供一个父对象;其次,你不能在 dcObject 中使用点,dc(域组件)只接受字母数字和连字符(请参阅RFC4519)
dn: dc=corp,dc=f7
objectClass: dcObject
objectClass: organization
dc: corp
o: corp
(并且您不能使用 dcObject 作为唯一的对象类,因为它被定义为辅助类,因此您需要一个结构类来提供一些支架;组织会做得很好。您可能想趁此机会阅读 RFC4519 :-))