Solaris 开发者安全性指南

PAM 堆栈示例

请考虑以下请求验证的 rlogin 服务示例。


示例 3–1 典型 PAM 配置文件的部分内容

该示例中的 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_dhkeyspam_unix_auth 返回失败信息,则会拒绝用户通过 rlogin 进行访问。