![来自 ldap 的基于 dn 的 linux 组](https://linux22.com/image/536329/%E6%9D%A5%E8%87%AA%20ldap%20%E7%9A%84%E5%9F%BA%E4%BA%8E%20dn%20%E7%9A%84%20linux%20%E7%BB%84.png)
有没有办法使用 LDAP 的基于 DN 的组之一来表示 Linux 组,而不是使用基于 uid 的 posixGroup 对象类?
更广泛地说,有没有什么方法可以避免拥有一组用于支持 Linux 帐户的组和一组供其他所有帐户使用的平行组?
答案1
是的。
在您的 nss_ldap 配置文件中,设置 nss_schema:
nss_schema rfc2307bis
在您的服务器模式中,确保 posixGroup 对象类是辅助的而不是结构性的。
然后,您可以为每个组使用 groupofmembers(new) 或 groupofnames(old) 和 posixgroup 对象类。每个成员都将位于一个成员属性中:
dn: cn=foo,ou=Groups,dc=example
objectclass: top
objectclass: posixgroup
objectclass: groupofmembers
gidnumber: 9234
member: uid=bob,ou=people,dc=example
member: uid=alice,ou=people,dc=example
答案2
要获取groupOfMembers
架构,您可以从 rfc 中提取或使用这个已为您完成,并将其保存到/etc/openldap/schema/rfc2307bis.schema
。此架构取代了nis
架构,因此请先删除 架构。
如果你使用cn=config
后端
convert-schema.conf
创建包含 以下内容的文件包括/etc/openldap/schema/core.schema 包括 /etc/openldap/schema/cosine.schema 包括/etc/openldap/schema/rfc2307bis.schema
- 创建一个名为的目录
/tmp/converted
- 将架构转换为 ldif:
slaptest -f convert-schema.conf -F /tmp/convert/
- 修复所有错误,包括删除值中的撇号以及删除对 authPassword 属性的引用,直到
slaptest
成功
- 修复所有错误,包括删除值中的撇号以及删除对 authPassword 属性的引用,直到
- 复制
/tmp/convert/cn=config/cn=schema/cn={2}rfc2307bis.ldif
到/etc/openldap/rfc2307bis.ldif
- 调整
rfc2307bis.ldif
- 将第一行改为
dn: cn=rfc2307bis,cn=schema,cn=config
- 将第三行更改为
cn: rfc2307bis
- 删除末尾的七行(
structuralObjectClass
至modifyTimestamp
)
- 将第一行改为
- 导入模式 ldif:
ldapadd -f rfc2307bis.ldif -D "cn=admin,cn=config" -W