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私房菜基础学习篇》第三版

1 0
原创粉丝点击