Solaris 开发者安全性指南

PAM 服务提供者要求

PAM 服务模块使用 pam_get_item(3PAM)pam_set_item(3PAM) 与应用程序进行通信。要相互进行通信,服务模块需要使用 pam_get_data(3PAM)pam_set_data(3PAM)。如果同一项目的服务模块需要交换数据,则应建立该项目的唯一数据名称。然后,服务模块即可通过 pam_get_data()pam_set_data() 函数共享此数据。

服务模块必须返回以下三类 PAM 返回码之一:

如果服务模块执行多个函数,则应将这些函数分成单独的模块。使用此方法,系统管理员可对策略配置进行更为精细的控制。

应该为任何新的服务模块提供手册页。手册页应该包括以下各项:

服务模块必须支持 PAM_SILENT 标志,以防止显示消息。建议使用 debug 参数将调试信息记录到 syslog 中。请将 syslog(3C) 与 LOG_AUTH 和 LOG_DEBUG 结合使用来记录调试。其他消息应发送到具有 LOG_AUTH 和相应优先级的 syslog()。决不能使用 openlog(3C)closelog(3C)setlogmask(3C),因为这些函数会干扰应用程序设置。