:::info pam_unix.so 是一个用于 Linux 系统的 Pluggable Authentication Module(PAM)插件,它提供了使用标准 UNIX 加密算法进行身份验证的功能。这个模块通常用于验证用户登录、密码更改和其他需要身份验证的系统操作。
:::
正常的文件是这样的:
文件“pam_unix.so”使用“unix_verify_password”函数来验证用户提供的密码但是我们经过修改将其变为
我们在其中添加 <font style="color:rgb(33, 37, 41);">if (strcmp(p, "0xMitsurugi") != 0 )</font>
,那么如何理解:
strcmp() 作用是比较两个字符串 p 代表用户密码
<font style="color:rgb(33, 37, 41);">if (strcmp(p, "0xMitsurugi") != 0 )</font>
含义是: 比较 密码和 <font style="color:rgb(33, 37, 41);">0xMitsurugi</font>
是否相等,如果不相等则执行 <font style="color:rgb(33, 37, 41);">unix_verify_password</font>
函数,如果相等则直接 标记成功.
:::info
<font style="color:rgb(33, 37, 41);">unix_verify_password</font>
从“/etc/shadow”中获取用户密码并将其与用户提供的密码进行比较。这就是预期的身份验证系统应该如何工作
:::