Я борюсь со своим 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
должно хватить.