Я не могу добавлять пользователей / группы posix в этот недавно созданный каталог ldap. Версия OpenLDAP - 2.4.19.
LDIF, который я заполнил в каталоге LDAP, вероятно, является проблемой, но я не уверен, что мне нужно делать дальше ...
dn: dc=company,dc=net,dc=au
objectClass: dcObject
objectClass: organization
o: Company Pty Ltd
dc: company
dn: cn=manager,dc=company,dc=net,dc=au
objectClass: organizationalRole
cn: Manager
dn: ou=People,dc=company,dc=net,dc=au
objectClass: organizationalUnit
objectClass: top
ou: People
dn: ou=Groups,dc=company,dc=net,dc=au
objectClass: organizationalUnit
objectClass: top
ou: Groups
Может ли кто-нибудь меня просветить :)
Обновление: я добавил nis.schema
, который, как я ожидал, решит проблему, поскольку в нем есть все классы posix *, которые я искал. Однако теперь я получаю следующую ошибку:
/etc/openldap/schema/nis.schema: line 203 objectclass: AttributeType not found: "manager"
/opt/openldap/etc/openldap/slapd.conf: line 6: <include> handler exited with 1!
slapd destroy: freeing system resources.
slapd stopped.
connections_destroy: nothing to destroy.
Соответствующий раздел nis.schema
, ~ строка 203 выглядит следующим образом ...
objectclass ( 1.3.6.1.1.1.2.6 NAME 'ipHost'
DESC 'Abstraction of a host, an IP device'
SUP top AUXILIARY
MUST ( cn $ ipHostNumber )
MAY ( l $ description $ manager ) )
Я продолжу читать.
Я не могу вам сильно помочь с phpldap, так как я никогда им не пользовался (предпочитаю ApacheDirectoryStudio или инструменты командной строки openldap), но если вы можете использовать с ним общий файл LDIF, попробуйте этот:
dn: uid=juser,ou=People,dc=company,dc=net,dc=au
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: top
cn: Joe User
gidNumber: 100
homeDirectory: /home/juser
uid: juser
uidNumber: 1004
gecos: Joe User
givenName: Joe
loginShell: /bin/bash
... и посмотреть, работает ли?
В любом случае я настоятельно рекомендую использовать ApacheDirectoryStudio в качестве общего браузера LDAP / схем.
Думаю, я понял это - как только я закончу читать, я опубликую основную причину и подробное решение; но пока - короче - я не включил соответствующие файлы схемы.
PosixAccount - это вспомогательный класс, поэтому он полностью необязателен, и его можно «прикрепить» к требуемому структурному классу - будь то person, organizationPerson или interOrgPerson.
Нет, я думал, что близко, все равно не повезло. Чтобы добавить nis.schema, мне пришлось добавить несколько предварительных схем, так что теперь у меня есть ...
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
Это разрешило, что slapd не запускается, однако я все еще не вижу никаких классов posix * в веб-интерфейсе ldap mgmt.
У вас был правильный ответ; вам нужно добавить схемы, как указано в вашем slapd.conf, и перезапустить:
примечание: порядок важен!
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
Затем вы можете добавить пользователя POSIX через файл ldif:
# User primary group
dn: cn=ussergroup,ou=groups,dc=me,dc=com
cn: ussergroup
objectClass: top
objectClass: posixGroup
gidNumber: 10001
# User account
dn: uid=user,ou=users,dc=me,dc=com
cn: user
givenName: user
sn: user
uid: user
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/user
mail: user@me.com
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
loginShell: /bin/bash
userPassword: {CRYPT}*
Вы можете попробовать использовать сценарии миграции для создания базового файла ldif. В моей установке RHEL они находятся в /usr/share/openldap/migration/
, конечно, в зависимости от вашего дистрибутива они могут оказаться где-то еще.
migrate_passwd.pl
предоставит вам ваших пользователей, и migrate_group.pl
вы группы (оба очевидны). При необходимости вы также можете использовать migrate_all_online.sh
чтобы засасывать все из вашей текущей системы и выгружать это прямо в текущий работающий LDAP (а затем сокращать или добавлять по мере необходимости).