Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inheritance 嵌套组的LDAP组成员身份继承_Inheritance_Ldap_Openldap_Active Directory Group - Fatal编程技术网

Inheritance 嵌套组的LDAP组成员身份继承

Inheritance 嵌套组的LDAP组成员身份继承,inheritance,ldap,openldap,active-directory-group,Inheritance,Ldap,Openldap,Active Directory Group,我正在使用OpenLDAP中的组来应用嵌套或子组成员身份,使用rfc2307bis.schema来取代nis.schema,因此objectClassgroupOfNames用于组。组成员身份继承是我试图实现的目标 例如,工程师是主要群体,开发人员是次要群体。主要工程师小组是开发人员小组的成员,如下所示: 第二组 主要组如下所示: 初级组 运行getent group developers时,engineers的成员不会显示为developers的成员。另外,运行id sam只会将sam显示为主

我正在使用OpenLDAP中的组来应用嵌套或子组成员身份,使用
rfc2307bis.schema
来取代
nis.schema
,因此objectClass
groupOfNames
用于组。组成员身份继承是我试图实现的目标

例如,
工程师
是主要群体,
开发人员
是次要群体。主要
工程师
小组是
开发人员
小组的成员,如下所示:

第二组 主要组如下所示:

初级组 运行
getent group developers
时,
engineers
的成员不会显示为
developers
的成员。另外,运行
id sam
只会将sam显示为主要
工程师组的成员,但是sam还应该继承
开发人员
的组成员身份,因为
开发人员
记录包含
工程师
作为成员,并且sam是
工程师
的成员

我正在使用权限为
040
的文件进行测试,如下所示:

----r----- 1 root developers 28 Dec  4 01:49 /tmp/testfile
developers
组在其组记录中有1名成员:

member: cn=engineers,ou=Groups,dc=example,dc=com
如果
/tmp/testfile
属于
工程师
我可以读取该文件,但是如果
开发者
拥有该文件,即使
工程师
开发者
的成员,我也无法读取该文件

然后,我开始阅读关于dynlist覆盖的内容,并加载了
dyngroup.schema
认为使用ACL可能会实现组继承的总体目标,但如果我正在寻找的是动态组,我不完全理解如何执行它。下面是一个我认为可行的例子

dn: cn=dynamic,ou=Groups,dc=example,dc=com
objectClass: groupOfURLs
cn: dynamic
memberURL: ldap:///cn=engineers,ou=Groups,dc=example,dc=com?member?sub (objectClass=groupOfNames)

LDAP
开发者
组如何对他们不直接拥有但属于拥有
测试文件
的主组成员的文件拥有文件权限?

如果条目具有特定的objectClass,则动态列表OpenLDAP覆盖将“扩展”条目的类组属性。声明说:“不允许递归,以避免潜在的无限循环。”。所以dynlist只进行了一级扩展。OpenLDAP本身不会扩展嵌套组。你需要一段应用程序代码来完成这项工作。我对此进行了测试,但没有得到预期的结果。在我的例子中,dynlist overlay确实按成员的uid扩展了成员的权限,但看起来这并没有改变文件权限的处理方式。我认为,如果它能够扩展ou=People中用户的完整DN,它可能会工作,但正如手册页所说的“不允许递归”。感谢RLandster动态列表OpenLDAP覆盖“扩展”条目的类组属性(如果该条目具有特定的objectClass)。声明说:“不允许递归,以避免潜在的无限循环。”。所以dynlist只进行了一级扩展。OpenLDAP本身不会扩展嵌套组。你需要一段应用程序代码来完成这项工作。我对此进行了测试,但没有得到预期的结果。在我的例子中,dynlist overlay确实按成员的uid扩展了成员的权限,但看起来这并没有改变文件权限的处理方式。我认为,如果它能够扩展ou=People中用户的完整DN,它可能会工作,但正如手册页所说的“不允许递归”。谢谢你,兰斯特
member: cn=engineers,ou=Groups,dc=example,dc=com
dn: cn=dynamic,ou=Groups,dc=example,dc=com
objectClass: groupOfURLs
cn: dynamic
memberURL: ldap:///cn=engineers,ou=Groups,dc=example,dc=com?member?sub (objectClass=groupOfNames)