第 1 章简介

  • Linux-PAM *(Linux 的可插入身份验证模块)是一套共享库,使本地系统 Management 员可以选择应用程序对用户进行身份验证的方式。

换句话说,无需(重写)和重新编译支持 PAM 的应用程序,就可以在其使用的身份验证机制之间进行切换。实际上,可以完全升级本地身份验证系统,而无需接触应用程序本身。

从历史上看,需要对给定用户进行身份验证的应用程序必须进行编译以使用特定的身份验证机制。例如,在传统的 UN * X 系统中,通过 Importing 正确的密码来验证用户的身份。该密码以两个字符``salt''为前缀后,被加密(使用 crypt(3))。如果此加密密码与系统密码数据库(/etc/passwd文件)中用户条目的第二个字段相同,则对用户进行身份验证。在这样的系统上,大多数(如果不是全部)形式的特权都是基于此单一身份验证方案授予的。特权以个人用户标识符(UID)和各种组的成员身份的形式出现。根据用户的个人和组身份,可以使用服务和应用程序。传统上,组成员资格是根据/etc/group文件中的条目分配的。

  • Linux-PAM *项目的目的是将特权授予软件的开发与安全和适当的身份验证方案的开发分开。这是通过提供一个功能库来实现的,应用程序可以使用这些功能库来请求对用户进行身份验证。使用系统文件/etc/pam.conf(或位于/etc/pam.d/的一系列配置文件)在本地配置此 PAM 库,以通过本地可用的身份验证模块对用户请求进行身份验证。模块本身通常将位于目录/lib/security/lib64/security中,并采用可动态加载的目标文件的形式(请参见 dlopen(3))。