来自ldap的基于dn的Linux组

有没有办法使用LDAP的基于DN的之一的Linux组,而不是使用基于uid的posixGroup objectclass?

更广泛地说,有什么办法可以避免拥有一组用于支持Linux帐户的组和一组其他所有组使用的并行组?

是。

在你的nss_ldapconfiguration文件中,设置nss_schema:

nss_schema rfc2307bis 

在架构中的服务器上,确保posixGroup对象类是辅助的而不是结构的。

然后,可以为每个组使用groupofmember(new)或groupofnames(old)和posixgroup objectclass。 每个成员将成为一个成员属性:

 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 

要获得groupOfMembers模式,你可以从rfc中提取它 ,或者使用这个已经完成的工作,并将其保存到/etc/openldap/schema/rfc2307bis.schema 。 这个模式取代了nis模式,所以先删除那个模式。

如果您使用cn=config后端

  1. 创build一个包含convert-schema.conf的文件
    包括/etc/openldap/schema/core.schema
    包括/etc/openldap/schema/cosine.schema
    包括/etc/openldap/schema/rfc2307bis.schema
    
  2. 创build一个名为/tmp/converted的目录
  3. 将模式转换为ldif: slaptest -f convert-schema.conf -F /tmp/convert/
    • 修复任何错误,包括删除值中的撇号,并删除对authPassword属性的引用,直到slaptest成功
  4. /tmp/convert/cn=config/cn=schema/cn={2}rfc2307bis.ldif复制到/etc/openldap/rfc2307bis.ldif
  5. 修改rfc2307bis.ldif
    • 将第一行更改为dn: cn=rfc2307bis,cn=schema,cn=config
    • 将第三行更改为cn: rfc2307bis
    • 删除最后的七行( structuralObjectClassmodifyTimestamp
  6. 导入模式ldif:
    ldapadd -f rfc2307bis.ldif -D "cn=admin,cn=config" -W