据我所知,它会获得一个用户名/密码对,然后它在 LDAP 中搜索用户名,并尝试使用可分辨名称和密码对登录 LDAP,如果成功则身份验证成功,如果不成功则不成功。
那么这与模式如何匹配?
PAM 是否需要绝对最小的模式(例如:仅包含 dn 和密码)或者是否配置为通过特定字段名称搜索用户名的匹配项,然后将密码与另一个指定字段中的密码进行比较?
答案1
您可以使用默认架构来实现此目的,但如果确实需要,您可以配置 LDAP 模块以准确告知其在哪里找到可能的用户。具体如何操作取决于所使用的 PAM 模块(例如pam-ldap
、pam-ldapd
或sssd
)。
您需要的最少字段数是用户名、数字 uid、主目录、shell 和密码。
答案2
举个例子,posixAccount
objectClass 怎么样?OpenLDAP 中包括nis
模式文件:
olcObjectClasses: {0}( 1.3.6.1.1.1.2.0 NAME 'posixAccount' DESC 'Abstraction o
f an account with POSIX attributes' SUP top AUXILIARY MUST ( cn $ uid $ uidNu
mber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $
description ) )
person
例如,因为它是辅助的,所以您仍然需要一个结构对象类。