getent passwd 不起作用;CentOS 7 和 SSSD LDAP 认证

dub*_*bis 9 authentication ldap centos-7

我在全新的服务器上安装了 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 
Run Code Online (Sandbox Code Playgroud)

我在 /etc/sssd/sssd.conf

cache_credentials = False
Run Code Online (Sandbox Code Playgroud)

我重新启动了ssd。

systemctl restart sssd
Run Code Online (Sandbox Code Playgroud)

我检查命令authconfig --test,一切似乎没问题:(http://www.heypasteit.com/clip/1LZ2

slm*_*slm 10

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

我应该什么时候在 SSSD 中启用枚举?或者为什么默认禁用枚举?

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

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

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

   [domain/<domainname>]
   enumerate = true
   ...
Run Code Online (Sandbox Code Playgroud)

在您的 sssd.conf 文件中。

这使得能够getent passwd显示通过 SSSD 可用的所有帐户。请注意,这可能会拖累性能。