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


9

我在全新的服务器上安装了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

Answers:


9

我不确定这是否是正确的解决方案,但在SSSD FAQ中注意到了这一点:

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

“枚举”是SSSD的术语,用于“读入并显示特定地图的所有值(用户,组等)”。为了最小化SSSD必须与之通信的服务器上的负载,我们默认在SSSD中将其禁用。在大多数操作中,无需列出完整的用户或组。应用程序通常会请求有关特定用户或组的信息。

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

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

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

在您的sssd.conf文件中。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.