该示例中的 pam.conf 文件包含以下有关 rlogin 服务的内容:
# Authentication management ... # rlogin service rlogin auth sufficient pam_rhosts_auth.so.1 rlogin auth requisite pam_authtok_get.so.1 rlogin auth required pam_dhkeys.so.1 rlogin auth required pam_unix_auth.so.1 ... |
rlogin 服务请求验证时,libpam 将首先执行 pam_rhosts_auth(5) 模块。对于 pam_rhosts_auth 模块,控制标志将设置为 sufficient。如果 pam_rhosts_auth 模块可以验证用户,则处理将停止并且会向应用程序返回成功信息。
如果 pam_rhosts_auth 模块无法验证用户,则将执行下一个 PAM 模块 pam_authtok_get(5)。此模块的控制标志将设置为 requisite。如果 pam_authtok_get 失败,则验证过程将结束并向 rlogin 返回失败信息。
如果 pam_authtok_get 成功,则将执行接下来的两个模块 pam_dhkeys(5) 和 pam_unix_auth(5)。这两个模块的关联控制标志都会设置为 required,以便该过程可继续进行,无论是否会返回单独的失败信息。执行 pam_unix_auth 后,不会再保留任何用于验证 rlogin 的模块。此时,如果 pam_dhkeys 或 pam_unix_auth 返回失败信息,则会拒绝用户通过 rlogin 进行访问。