![OpenLDAP 不允许修改成员](https://linux22.com/image/633466/OpenLDAP%20%E4%B8%8D%E5%85%81%E8%AE%B8%E4%BF%AE%E6%94%B9%E6%88%90%E5%91%98.png)
我正在努力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 [email protected]:/usr/obj/usr/src/sys/GENERIC amd64
编辑:好的,我发现我错误地使用了 posixGroup。我应该使用 GroupOfNames 来插入 CN。
但什么是正确的结构呢?
答案1
RFC2307 又名“NIS”模式不允许posixGroup
具有member
属性 – 仅memberUid
;您可以在文件的第 175 行左右亲自查看nis.schema
。
objectClass: posixGroup (structural)
cn: users
gidNumber: 1000
memberUid: daywalker
如果要member
在创建“系统”(POSIX)组时使用和输入 DN,则需要使用RFC2307bis模式,它变为posixGroup
辅助模式,以便可以与或groupOfNames
类一起使用groupOfMembers
:
objectClass: groupOfMembers (structural)
objectClass: posixGroup (auxiliary)
cn: users
gidNumber: 1000
member: uid=daywalker,ou=people,dc=foo
对于其他目的(仅限 LDAP 组),只需groupOfNames
或groupOfMembers
就足够了。