据我所知,Linux 上有两种可用的身份验证方案。
- PAM 身份验证模块以及
- /etc/nsswitch.conf 文件
当用户登录时,哪一个优先?
答案1
不要混淆 nssswitch 和 PAM。它们是不一样的:
/etc/nsswitch.conf
是一个要配置的配置文件,系统应从中获取其数据库。用户、组、密码、dns 查找等的数据库。例如,当您更改文件的所有者 ( chown
) 或权限 ( chmod
) 时。然后系统需要知道如何解释 uid 和 gid;从文件 ( /etc/passwd, /etc/shadow, /etc/group
) 或从 LDAP 服务器(或两者)或从其他服务(NIS、AD、Kerberos)中。同样与 nsswitch 相关的是重复条目情况下的优先级。
聚丙烯酰胺是一个组件,它定义在身份验证、密码更改或会话启动时应发生什么。PAM 授予或拒绝访问权限。它挂载需要在用户登录时挂载的文件系统 ( pam_mount.so
)、执行登录脚本 ( pam_exec.so
)、通过 unix 方法 ( pam_unix.so
) 或通过 LDAP ( pam_ldap.so
) 进行身份验证。它将用户提供的密码从一个模块传递到另一个模块,并且(无论如何配置)模块可能会破坏堆栈,也可能不会。这会导致身份验证成功或失败。