PAM 学习笔记

PAM(Pluggable Authentication Modules)是一套共享函数库API,允许系统管理员决定应用程式如何识别用户。PAM通过动态配置文件实现,支持多种认证模块如pam_access、pam_cracklib等,并分为验证模块(auth)、帐户管理模块(account)、密码管理模块和会话管理模块四大类。
插入式验证模块( Pluggable Authentication Module PAM
是一套共享函数库API,允许系统管理员来决定应用程式如何识别用户.
clip_image002
注意,
应用程序 ( 服务 ) 必须本身是支持 PAM 认证的 , 也就是说源码里面使用了 PAM API
PAM 的体现结构如下图
clip_image004
认证模块 :
位于/lib/security/和/lib64/security/下,文件名如pam_*.so,例如: pam_access.so
是在其他的UN*X中,你可能会在/usr/lib/security中看到这些文件。
而且模块是可堆叠的,即可以针对一个认证过程调用多个模块进行多种方式的认证,如
/etc/pam.d/samba有如下内容,对于auth这个操作调用了两个认证方式
auth required pam_nologin.so
auth include system-auth
配置文件 :
PAM 的主要特征表现为通过 /etc/pam.d 或 /etc/pam.conf(旧版本) 文件实现动态验证配置
一般在/etc/pam.d目录里,需要为程序设一个配置文件.具体的文件名是写死在程序里的.通常和程序名一样,假设程序名字叫"pamprog",配置文件就是/etc/pam.d/pamprog.
PAM  模块是按模块类型归类的。任何给定的模块至少要实现四种模块类型功能之一:
1.  验证模块(auth)用于验证用户或设置/销毁凭证。如提示输入用户名密码
2.  帐户管理模块(account)将执行与访问、帐户及凭证有效期、密码限制/规则等有关的操作。
3.  密码管理模块将执行与密码更改/更新有关的操作。
4.  会话管理模块用于初始化和终止会话。如记录log,挂上某些档案系统等.
PAM 将提供不同的功能,例如单点登录验证、访问控制等。每个功能的实现都是由不同的模块处理的。下面是一些主要模块:
  • pam_access 将使用登录名/域名,根据 /etc/security/access.conf 中的预定义规则交付日志守护进程样式的登录访问控制。
  • pam_cracklib 将根据密码规则检查密码。
  • pam_env sets/unsets 环境变量来自 /etc/security/pam_env_conf。
  • pam_debug 将调试 PAM。
  • pam_deny 将拒绝 PAM 模块。
  • pam_echo 将打印消息。
  • pam_exec 将执行外部命令。
  • pam_ftp 是匿名访问模块。
  • pam_localuser 要求将用户列于 /etc/passwd 中。
  • pam_unix 将通过 /etc/passwd 提供传统密码验证。

本文转自yahoon 51CTO博客,原文链接:http://blog.51cto.com/yahoon/269395,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值