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: 模块的专用参数;
来源: http://www.bubuko.com/infodetail-2659884.html