LDAP 在 Linux 客户端上显示太多用户和组

LDAP 在 Linux 客户端上显示太多用户和组

我们在 Solaris 服务器上托管 LDAP,并使用 150 个 Solaris 客户端和 50 个 Linux 客户端。用户和组有一个他们可以访问的网络组(服务器主机名)列表。这意味着用户 apacheman01 只能使用其用户名/密码通过 SSH 访问特定服务器。到目前为止,一切正常。

ldap.conf:
[root@tst-01 ~]# cat /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld
BASE dc=tst,dc=domain,dc=tld

但是这些命令会显示 LDAP 服务器上所有可用的用户和组,而不仅仅是有权访问此服务器的用户。这也意味着当用户登录时,它可以“su -”到另一个甚至不应该有权访问该服务器的用户。

getent passwd
getent group

因此,LDAP 身份验证可以按初始 LDAP SSH 身份验证的方式工作,但是 getent passwd/group 不应列出 LDAP 上的所有用户/组,而应仅列出分配给这些用户/组的服务器/网络组。

答案1

这是预期的行为,如下所述getent(1)

getent 命令显示名称服务切换库支持的数据库中的条目,这些数据库包括
在 /etc/nsswitch.conf 中配置。如果提供了一个或多个关键参数,则只有
将显示与提供的键匹配的条目。否则,如果没有提供键,将显示所有条目
(除非数据库不支持枚举)。

如果您想限制的使用su,请/etc/pam.d/su改用:

auth       required   pam_wheel.so

相关内容