我已经看到了类似的问题,configurationApache通过LDAP进行身份validation,但这个基本的问题仍然让我困惑。
在我的设置中,我创build了所有具有相同主要GID的用户,然后将用户添加到各种(补充/辅助)组。 我testing了这些用户帐户,在大多数情况下,一切正常 – 我的权限基于补充组成员身份正在工作。 我使用smbldap-tools包来configuration我的用户和组,特别是我使用smbldap-usermod -G +NEW_GROUP user将用户添加到补充组。
如果我是getent group我会看到那些补充组和他们的成员。 好。
如果我查看其中一个补充组的LDAP条目,我会看到所有列出的用户都按照预期的那样。
但是,当我查看每个用户的LDAP条目时,只会列出与主要组对应的gidNumber 。 也就是说,每个用户的LDAP条目仅列出主要组,并且没有提及次要组。
Samba / LDAP(使用smbldap-tools)如何处理辅助/辅助组?
而且,我怎样才能形成searchfilter来识别辅助组的成员?
LDAP只是一个信息目录。 信息如何被存储和检索取决于应用程序。 在这种情况下,posix用户和组build模在/ etc / passwd和/ etc / group文件之后。 每个用户条目列出其主要组的gid。 每个组列出其所有成员(通常不包括将其列为主要组)。
Samba和用于在LDAP中存储用户和组信息的各种nss插件都会执行search以查找用户在login时所属的组。应对memberUid属性进行索引以使组成员身份快速search。 对于给定的用户帐户,searchfilter是这样的:
(&(objectclass=posixGroup)(memberUid=$user))
如果您想查看特定组中的用户,可以使用以下方式进行search:
(&(objectclass=posixGroup)(cn=$group))
这假定所有的组都是posixGroup objectClass。
我不是一个大的OpenLDAP用户,但是如果这是一个Active Directory环境,我会使用每个用户帐户对象中存在的“memberOf”属性。 在OpenLDAP世界中,它看起来像memberOf覆盖将做你正在寻找的东西。 我怀疑这个问题会告诉你,你需要知道为什么要这样做。