Linux在哪里检查密码?

Rya*_*yan 5 linux password pam

我知道密码存储在 /etc/shadow

但是,在登录过程中,我假设 Linux 将您的用户名和密码作为参数,使用相同的算法加密您的密码,并将其与存储在 shadow 中的密码进行比较。

我的问题是,这个过程发生在哪里?(代码)我试图搜索 PAM,但我也找不到任何有用的东西。

Gil*_*il' 3

在 PAM 中,对于存储在 中的本地密码/etc/shadow,检查密码的工作由pam_unix执行。

在幕后,验证是由crypt函数完成的。(实际上,在大多数情况下,通过crypt_r。)请注意,尽管有名称,此函数不会加密或解密密码,而是对密码进行哈希处理。中的密码字段/etc/shadow包含散列参数以及实际散列值。

pam_unix 模块的源代码是Linux-PAM的一部分。该crypt函数的源代码是 C 库 ( Glibc ) 的一部分。