我拥有大量运行各种 Linux 版本的服务器,它们都通过 SSSD 设置为 OpenLDAP 客户端。我添加了一个 LDAP 组 (sysadmins)。我还在所有服务器上添加了一个 sysadmins 组。sysadmins 组的成员会随时间而变化。
如何让 LDAP 组中的所有用户在登录时添加到本地组?
答案1
根据 ubuntu 文档,您可以将域用户映射到本地组,我不确定它是否适用于任何操作系统,但它似乎使用应该在任何 *nix 系统上的标准模块。
为用户分配本地组
要将本地组分配给域(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_ldap
pam_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 合并组内容。