我想在 RHEL 9 系统上本地管理用户。我想在本地创建、删除和关联组。但是我希望他们的密码通过 LDAP 进行验证。如果他们在 ldap 中不存在,那没问题,他们应该使用本地文件身份验证进行身份验证。如果用户在本地 /etc/passwd 文件中不存在,我不希望它创建用户或授予访问权限。
我不想要的是将系统加入域或从 ldap 检索组,甚至需要定义 ldap 用户才能登录的集成。我想要的只是如果 ldap 中存在本地用户则进行密码验证。
当然这是可能的,但到目前为止,我一直被 sssd 所驱使,好像这是唯一的解决方案,但我还没有让它按照我想要的方式工作。非常感谢您的帮助。
答案1
任何能够与 AD 通信的 PAM 模块都可以完成这项工作,只要您配置仅有的PAM 和不是/etc/nsswitch.conf 1. PAM 负责处理身份验证检查;nsswitch 负责检索用户信息。
PAM 模块的选择并不重要很多;您可以以完全相同的方式将它们集成到 PAM 中。可以使用SSSD ( pam_sss
) 或 Nslcd(“新” )。pam_ldap
我个人会使用pam_krb5
,因为 Kerberos 是实际的AD 使用的身份验证协议(而针对 LDAP 验证密码有点像针对 FTP 验证密码),但不可否认的是,Kerberos 确实有一个额外的要求,即通过“adcli”创建一个计算机帐户并获取主机密钥表(即“域加入”的核心部分),因此根据情况,这可能对您来说是不可接受的。
同样,Sambapam_winbind
也可以工作,尽管它需要完整的域加入,而且在这里肯定是过度的,但核心概念保持不变。(也就是说,您可以完成 RHEL 的完整域加入过程,然后在 nsswitch.conf 中禁用 AD - 仅保留 PAM - 这样您就会得到所需的结果。)
1(也就是说,您想要的是与 Greg 链接到的另一个主题中的“接受的”答案完全相反的答案。)