PAM模块
来源:互联网 发布:手机制作结婚照软件 编辑:程序博客网 时间:2024/04/30 13:53
一.概述
1.PAM可以说是一套应用程序编程接口(API),它提供了一连串的验证机制,只要用户将验证阶段的需求告知PAM后,PAM就能回报用户验证的结果(成功或失败);
2.PAM用来进行验证的数据称为模块;
二.使用
1.比如执行passwd这支程序时:
1)用户通过/usr/bin/passwd这支程序,并输入密码;
2)passwd调用PAM模块进行验证;
3)PAM模块会到/etc/pam.d/中找寻与程序(passwd)的同名配置文件;
4)根据配置文件的设置,引用相关的PAM模块逐步进行验证分析;
5)将验证结果(成功,失败以及其他信息)回传给passwd这个程序;
6)passwd程序会根据回传结果决定下一个操作。
2.配置文件
1)有三个字段,分别为:验证类别(type)、控制标准(flag)、PAM的模块与该模块的参数;
2)验证类型(type):
auth:是authentication(认证)的缩写,所以这种类型主要是用来检验用户的身份验证,这种类型通常是需要密码来检验的,所以后续接的模块是用来检验用户的身份;
account(账号):大部分是在authorization(授权),这种类型则主要是检验用户是否具有正确的权限;
session:是会议期间的意思,所以session管理的就是用户在这次登录期间PAM所给予的环境设置;
password:密码,这种类型主要用于提供验证的修订工作;
3)验证的控制标志(control flag):
required:若验证成功则带有seccess的标志,失败带有failure的标志,但无论成功失败都会继续后续的验证流程;
requisite:若验证失败则立刻回报原程序failure的标志,并终止后续的验证流程;
sufficient:若验证成功则立刻回传success给原程序,并终止后续的验证流程;若失败则带有failure标志并继续后续的验证流程,和requisite相反;
optional:显示信息
3.常用模块
pam_securetty.so:限制系统管理员只能从安全的终端机登录;
pam_nologin.so:可以限制一般用户是否能够登录主机;当/etc/nologin这个文件存在时,则所有的一般用户都无法再登录系统了;
pam_selinux,so:SElinux是针对程序来进行详细管理权限的功能;
pam_console.so:但系统出现某些问题时,或者是某些时刻你需要使用特殊的终端接口登录主机时,这个模块可以帮助处理一些文件权限的问题,让用户可以通过特殊终端接口登录系统;
pam_loginuid.so:系统账号和一般的账号UID是不同的,一般账号UID大于500才合理,所以用这个模块来规范;
pam_env.so:用来设置环境变量的一个模块;
pam_UNIX.so:可以用于验证阶段的认证功能,可以用于授权阶段的账号许可证管理;
pam_cracklib.so:可以用来检验密码的强度;
pam_limits.so:提供ulimit的功能,可以参考/etc/security/limits.conf
4.相关文件:
/etc/pam.d/*:每个程序的PAM配置文件;
/lib/security/*:PAM模块文件的实际放置目录;
/etc/security/*:其他PAM环境的配置文件;
/usr/share/doc/pam-*:详细的PAM说明文件。
参考:《鸟哥的Linux私房菜基础学习篇》第三版
- PAM模块
- linux-PAM认证模块
- freeradius 如何配置pam 模块
- Linux中pam模块详解
- php的pam验证模块的安装
- vsftpd架设(配置pam模块)
- LINUX PAM 可插入验证模块
- 插入式验证模块(PAM)
- 【redhat5.5】pam常用模块及意义
- linux下可插拔认证模块PAM的基本概念
- 插入式验证模块(PAM)
- pam
- PAM
- PAM-Linux可插拔认证模块(PAM)的配置文件、工作原理与流程
- PAM-常用的Linux可插拔认证模块(PAM)应用举例(一)
- PAM-Linux可插拔认证模块(PAM)的配置文件、工作原理与流程
- PAM-Linux可插拔认证模块(PAM)的配置文件、工作原理与流程 .
- PAM-常用的Linux可插拔认证模块(PAM)应用举例(一)
- POJ 1276 Cash Machine(多重背包问题)
- 【搜索】【cogs 193】最多因子数
- 加入购物车功能实现
- SVG画圆形进度条
- 第十五周oj刷题——Problem H: C++ 习题 输出日期时间--友元类
- PAM模块
- 第16周上机实践项目3——max带来的冲突
- Python可执行对象——exec、eval、compile
- 与C++输入输出有关的类和对象
- java 从zip包中复制文件
- mysql -u root -p 等这些常用的参数
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第十四课:Cocos2D-X UI系统1-4
- Ubuntu14.04 lua游戏引擎Love安装
- Struts2 几个重要配置摘要