Назад | Перейти на главную страницу

Добавить группу / пользователя в OpenLDAP

Я впервые настраиваю OpenLDAP на RHEL6 и использую 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: jsmith@dev.local
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?

Как мне настроить группы и пользователей в созданной мной базе данных?

Спасибо

Во-первых, вам нужен родительский объект для вашего пользователя, во-вторых, вы не можете использовать точку в dcObject, dc (компонент домена) принимает только буквенно-цифровые символы и дефис (см. RFC4519)

dn: dc=corp,dc=f7
objectClass: dcObject
objectClass: organization
dc: corp
o: corp

(И вы не можете использовать dcObject в качестве единственного объектного класса, потому что он определен как вспомогательный, поэтому вам нужен структурный класс для обеспечения некоторого каркаса; организация подойдет. Возможно, вы захотите прочитать RFC4519, пока вы на нем :-) )