OpenLDAP/SSSD 自动将用户添加到本地组

OpenLDAP/SSSD 自动将用户添加到本地组

我拥有大量运行各种 Linux 版本的服务器,它们都通过 SSSD 设置为 OpenLDAP 客户端。我添加了一个 LDAP 组 (sysadmins)。我还在所有服务器上添加了一个 sysadmins 组。sysadmins 组的成员会随时间而变化。

如何让 LDAP 组中的所有用户在登录时添加到本地组?

答案1

根据 ubuntu 文档,您可以将域用户映射到本地组,我不确定它是否适用于任何操作系统,但它似乎使用应该在任何 *nix 系统上的标准模块。

Ubuntu 文档

为用户分配本地组

要将本地组分配给域(ldap)用户,请执行以下操作,编辑 /etc/security/group.conf 并向其中添加如下内容(以本地用户身份登录并运行 groups 命令来验证要添加的内容):

*;*;*;Al0000-2400;audio,cdrom,dialout,floppy

为了使pam_group模块正常工作,您可以创建如下文件/usr/share/pam-configs/my_groups

Name: activate /etc/security/group.conf
Default: yes

Priority: 900
Auth-Type: Primary 
Auth: required pam_group.so

并通过运行来激活它pam-auth-update

这大致相当于手动编辑并在任何设置/etc/pam.d/common-auth之前添加以下行:pam_ldappam_krb5

auth required pam_group.so

现在,通过 gdm 和 ssh 登录的用户应该可以看到本地组,可以通过执行 id 或 groups 来验证这一点。

完成

为了确保一切正常,请运行以下命令:

pam-auth-update
/etc/init.d/nscd restart

答案2

目前有一种方法可以实现这一点——您可以在每个主机本地添加用户,然后将 LDAP 中的成员添加到 /etc/groups 中。

第二种方法目前正在为 glibc 开发,并且不会早于 7.3 出现在 RHEL 中,但您可以在此处阅读相关内容:https://sourceware.org/glibc/wiki/Proposals/GroupMerging

这基本上允许您在本地和 LDAP 中定义组,并让 libc 合并组内容。

相关内容