Solaris 开发者安全性指南

PAM 验证过程

以消费方如何使用 PAM 库进行用户验证为例,请考虑 login 如何验证用户:

  1. login 应用程序通过调用 pam_start(3PAM) 并指定 login 服务来启动 PAM 会话。

  2. 该应用程序将调用 pam_authenticate(3PAM),后者是 PAM 库 libpam(3LIB) 导出的 PAM API 的一部分。

  3. 该库将在 pam.conf 文件中搜索 login 项。

  4. 对于 pam.conf 中为 login 服务配置的每个模块,PAM 库将调用 pam_sm_authenticate(3PAM)pam_sm_authenticate() 函数是 PAM SPI 的一部分。pam.conf 控制标志和每个调用的结果将确定是否允许用户访问系统。PAM 堆栈工作原理对此过程进行了更详细的介绍。

通过此方式,PAM 库可以将 PAM 应用程序与系统管理员已配置的 PAM 模块连接起来。