pam_aix 模块

pam_aix 模块是一个 PAM 模块,通过提供调用相应AIX服务的接口,使启用 PAM 的应用程序能够访问AIX安全服务。

这些服务依次由可装入认证模块或 AIX 内置函数根据用户的定义和 methods.cfg 文件中的相应设置来执行。 在执行 AIX 服务期间生成的任何错误代码都将映射到相应的 PAM 错误代码。

图 1。 PAM 应用程序到 AIX 安全子系统路径

此插图显示了如果配置 /etc/pam.conf 文件以利用 pam_aix 模块,那么 PAM 应用程序 API 调用将要遵循的路径。 如图所示,集成后,用户可通过任何可加载的身份验证模块(DCE、LDAP 或KRB5)或AIX®文件(compat)进行身份验证。

pam_aix 模块安装在 /usr/lib/security 目录中。 pam_aix 模块的集成要求配置 /etc/pam.conf 文件以使用该模块。 堆栈仍然是可用的,但是不在以下 /etc/pam.conf 文件的示例中显示:
#
# Authentication management
#
OTHER   auth     required       /usr/lib/security/pam_aix

#
# Account management
#
OTHER   account  required       /usr/lib/security/pam_aix 

#
# Session management
#
OTHER   session  required       /usr/lib/security/pam_aix 

#
# Password management
#
OTHER   password required       /usr/lib/security/pam_aix

pam_aix 模块实现了 pam_sm_authenticatepam_sm_chauthokpam_sm_acct_mgmt SPI 功能。 pam_sm_setcredpam_sm_open_sessionpam_sm_close_session SPI 也在 pam_aix 模块中实现,但是这些 SPI 功能返回 PAM_SUCCESS 调用。

以下是对 AIX 安全子系统的 PAM SPI 调用的近似映射:
         PAM SPI                    AIX
        =========                  =====
        pam_sm_authenticate   -->  authenticate
        pam_sm_chauthtok      -->  passwdexpired, chpass
                                   Note: passwdexpired is only checked if the
                                   PAM_CHANGE_EXPIRED_AUTHTOK flag is passed in.
        pam_sm_acct_mgmt      -->  loginrestrictions, passwdexpired
        pam_sm_setcred        -->  No comparable mapping exists, PAM_SUCCESS returned
        pam_sm_open_session   -->  No comparable mapping exists, PAM_SUCCESS returned
        pam_sm_close_session  -->  No comparable mapping exists, PAM_SUCCESS returned

可以在模块使用之前使用 pam_set_item 函数设置要传递到 AIX 安全子系统的数据,或者使用 pam_aix 模块设置数据 (如果尚不存在)。