我首次在RHEL6上设置OpenLDAP,并使用Puppet来完成初始安装/configuration。
我相信configuration使用slapd.d而不是slapd.conf方法。
基本上,我相信Puppet已经成功地创build了一个我想用作configuration树的根的数据库。 这是显示这个数据库创build的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
然后下面我在网上find一个例子,我试图喂以下的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吗?
我如何去设置我创build的数据库中的组和用户?
谢谢
首先,为用户需要一个父对象,其次,不能在dcObject中使用点,dc(域组件)只能使用字母数字和连字符(请参阅RFC4519 )
dn: dc=corp,dc=f7 objectClass: dcObject objectClass: organization dc: corp o: corp
(你不能使用dcObject作为唯一的对象类,因为它被定义为辅助对象,所以你需要一个结构类来提供一些脚手架;组织将会很好地完成,你可能想读取RFC4519 🙂 )