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

Член модификации OpenLDAP не разрешен

Я борюсь со своим LDAP атрибуты.

Я уже создал несколько тестовых пользователей и групп, но я не могу добавлять пользователей в группы.

#!DATE 2014-05-22T11:48:16.324
#!ERROR [LDAP: error code 65 - attribute 'member' not allowed]
dn: cn=test,ou=groups,dc=example,dc=org
changetype: modify
add: member
member: cn=User Name,ou=users,dc=example,dc=org

Группа пользователей - это просто PosixGroup:

dn: cn=test,ou=groups,dc=example,dc=org
changetype: add
gidNumber: 1234
objectClass: posixGroup
objectClass: top
cn: test

Ничего больше. Это (я думаю, соответствующий) вывод отладки:

May 22 13:48:12 intranet slapd[90208]: oc_check_required entry (cn=test,ou=groups,dc=example,dc=org), objectClass "posixGroup"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "cn"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "objectClass"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "structuralObjectClass"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "entryUUID"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "creatorsName"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "createTimestamp"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "gidNumber"
May 22 13:48:12 intranet slapd[90208]: oc_check_allowed type "member"
May 22 13:48:12 intranet slapd[90208]: Entry (cn=test,ou=groups,dc=example,dc=org), attribute 'member' not allowed
May 22 13:48:12 intranet slapd[90208]: entry failed schema check: attribute 'member' not allowed
May 22 13:48:12 intranet slapd[90208]: hdb_modify: modify failed (65)

Я загрузил следующие файлы схемы

include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/nis.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
#include         /usr/local/etc/openldap/schema/openldap.schema

Устанавливается через pkg_ng

# pkg info openldap-server
openldap-server-2.4.39_1
Name           : openldap-server
Version        : 2.4.39_1
Installed on   : Mon May 19 16:48:33 CEST 2014
...

# uname -a
FreeBSD intranet 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

РЕДАКТИРОВАТЬ: ОК, я понял, что неправильно использовал posixGroup. Я должен был использовать GroupOfNames, чтобы вставить CN.

Но какова же тогда правильная структура?

Схема RFC2307, также известная как "NIS", не позволяет posixGroup иметь member атрибуты - только memberUid; вы можете сами убедиться в nis.schema файл, около строки 175.

objectClass: posixGroup         (structural)
cn: users
gidNumber: 1000
memberUid: daywalker

Если вы хотите использовать member и DN записей при создании "системных" (POSIX) групп, вам нужно будет использовать RFC2307bis схема, которая меняет posixGroup во вспомогательный, чтобы его можно было использовать с groupOfNames или groupOfMembers классы:

objectClass: groupOfMembers     (structural)
objectClass: posixGroup         (auxiliary)
cn: users
gidNumber: 1000
member: uid=daywalker,ou=people,dc=foo

Для других целей (группы только для LDAP) просто groupOfNames или groupOfMembers должно хватить.