getent passwd 不起作用;CentOS 7 和 SSSD LDAP 身份验证

getent passwd 不起作用;CentOS 7 和 SSSD LDAP 身份验证

我在一台全新的服务器上安装了 CentOS 7。我的所有服务器都通过 LDAPS 在 RHEL5、Debian 和 Solaris 等各种系统上进行最终用户身份验证。我注意到 CentOS 7 上有一个新的层,即 NSS 和 PAM 之上的 SSS。无论如何,我尝试复制与其他服务器相同类型的连接。

该命令ldapsearch -x在 LDAP 中绑定,但在 LDAPS 中不绑定。

在挖掘问题的过程中,我尝试在 LDAP 中建立连接,挤压 SSS 层,将这些行放入我的/etc/nsswitch.conf

passwd:     files ldap #sss 
shadow:     files ldap #sss 
group:      files ldap #sss 

我在/etc/sssd/sssd.conf

cache_credentials = False

然后我重新启动了ssd。

systemctl restart sssd

我使用命令检查authconfig --test,一切似乎正常:(http://www.heypasteit.com/clip/1LZ2

答案1

我不确定这是否是正确的解决方案,但注意到SSSD 常见问题解答这点:

我应该何时在 SSSD 中启用枚举?或为什么默认情况下禁用枚举?

“枚举”是 SSSD 的术语,表示“读取并显示特定映射(用户、组等)的所有值”。我们在 SSSD 中默认禁用此功能,以尽量减少 SSSD 必须与之通信的服务器的负载。在大多数操作中,列出完整的用户或组集永远没有必要。应用程序通常会请求有关特定用户或组的信息。

枚举所有条目会对服务器负载和客户端性能产生负面影响(因为我们必须在本地缓存中保存用户和其所属组之间的所有复杂关系)。因此,我们在交付时禁用了枚举(与 Samba 项目的 winbind 行为相同)。

仅当您的环境中有应用程序或脚本必须能够检索完整列表时,才应启用枚举(以及由此产生的性能问题)。在这些情况下,可以通过设置来启用枚举

   [domain/<domainname>]
   enumerate = true
   ...

在您的 sssd.conf 文件中。

这样就可以getent passwd显示所有可通过 SSSD 使用的帐户。请注意,这可能会影响性能。

相关内容