pam:pluggable authentication module
认证库:存储
多种类型的存储:文件、关系型数据管理系统、LDAP、NIS
pam:通用框架,提供了与各种类型存储进行交互的公共实现、以及多种辅助类的功能:
/lib64/security/*
配置文件:为各种调用了pam的应用提供其专用配置;
通用配置文件:/etc/pam.conf,可为每一种调用pam完成认证功能的应用程序提供配置;
专用配置文件:/etc/pam.d/*,通常专用于为某种特定的应用程序提供配置;
通常每个应用会使用一个单独的配置文件;
配置文件格式:
通用配置文件:
application type control module-path module-arguments
专用配置文件:
type control module-path module-arguments
type:检查的功能类别
auth:账号的认证和授权;
account:与账号管理相关的非认证类的功能;
password:用户修改密码时密码复杂度检查机制;
session:用户获取到服务之前或使用服务完成之后需要进行一些附加性操作;
control:同一种功能的多个检查之间如何进行组合;
两种实现机制:
(1) 简单实现:使用一个关键词来定义
(2) 详细实现:使用一个或多个“status=action”
简单实现:
required:必须通过检查;否则,即为失败;无论成功还是失败,都需继续由后续同种功能的其它模块进行检查;
requisite:一票否决;检测失败就直接返回失败;检测成功,则由由后续同种功能的其它模块进行检查;
sufficient:一票通过,检测成功就直接返回成功;检测失败,则由由后续同种功能的其它模块进行检查;
optional:可选的,参考性控制机制;
include:调用其它配置文件中的同种功能的检测机制;
详细实现:
[status1=action1, status2=action2, ...]
status:返回状态
action:采取的行为,比如ok, done, die, bad, ignore, ...
module-path:模块文件路径;
相对路径:相对于/lib64/security/目录而言;
绝对路径:可位于任何可访问路径;
module-arguments:模块的专用参数;