PAM笔记

PAM


简介:

PAM可以理解为一个接口或者模块,提供了验证功能,只要使用者将验证的需求告知 PAM , PAM就能够返回验证的结果 (成功/失败)。PAM 是一套验证机制,可以被其他程序所引用,所以所有程序都可以使用 PAM进行验证,因此可以使账号密码或是其他方式的验证具有一致的结果。


工作流程:

用户想要使用某项服务发送验证信息到PAM,PAM进行验证返回验证结果(yes/no)允许/拒绝用户使用服务


以passwd 为例, 程序调用 PAM 的流程是:

1. 用户开始执行/usr/bin/passwd这支程序,输入密码;

2. passwd调用PAM模块进行验证;

3. PAM模块会在/etc/pam.d/寻找与程序(passwd)同名的配置文件;

4. 依据/etc/pam.d/passwd内配置,引用相关的PAM模块逐步验证分析;

5. 将验证结果(成功、失败以及其他信息)回传给passwd这支程序;

6. passwd这支程序会根据PAM反馈的结果决定下一个动作(重新输入新密码或通过验证)


PAM的文件:

/usr/lib/libpam.so.* PAM核心库

/etc/pam.conf 、/etc/pam.d/* PAM配置文件

/usr/lib/security/pam_*.so 可动态加载的PAM service module


PAM的配置:

PAM的配置是通过单个配置文件/etc/pam.conf,RedHat还支持另外一种配置方式,即通过配置目录/etc/pam.d/,且这种的优先级要高于单个配置文件的方式。


使用配置文件/etc/pam.conf :


该文件是由如下的行所组成的:

service-name module-type control-flag module-path arguments


服务名(service-name):

比如telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务。

模块类型(module-type):

模块类型有四种(auth、account、session、password)即对应PAM所支持的四种管理方式。同一个服务可以调用多个PAM模块进行认证,这些模块构成一个stack。

·control-flag :

用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。

它有四种可能的值:required,requisite,sufficient,optional。

·required :

表示本模块必须返回成功才能通过认证,但是如果该模块返回失败的话,失败结果也不会立即通知用户,而是要等到同一stack中的所有模块全部执行完毕再将失败结果返回给应用程序。可以认为是一个必要条件。

·requisite :

该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件。注:这种只有RedHat支持,Solaris不支持。

·sufficient :

表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack内的其它模块,但如果本模块返回失败的话可以忽略,可认为是一个充分条件。

·optional :

表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略。

module-path :

用来指明本模块对应的程序文件的路径名,一般采用绝对路径,如果没有给出绝对路径,默认该文件在目录/usr/lib/security下面。

arguments :

是用来传递给该模块的参数。一般来说每个模块的参数都不相同,可以由该模块的开发者自己定义,但是也有以下几个共同的参数:

·debug :

该模块应当用syslog( )将调试信息写入到系统日志文件中。

·no_warn :

表明该模块不应把警告信息发送给应用程序。

·use_first_pass :

该模块不能提示用户输入密码,只能从前一个模块得到输入密码。

·try_first_pass :

该模块首先用前一个模块从用户得到密码,如果该密码验证不通过,再提示用户输入新的密码。

·use_mapped_pass

该模块不能提示用户输入密码,而是使用映射过的密码。

·expose_account

允许该模块显示用户的帐号名等信息,一般只能在安全的环境下使用,因为泄漏用户名会对安全造成一定程度的威胁。


使用配置目录/etc/pam.d/ :

该目录下的每个文件的名字对应服务名,例如ftp服务对应文件/etc/pam.d/ftp。如果名为xxxx的服务所对应的配置文件/etc/pam.d/xxxx不存在,则该服务将使用默认的配置文件/etc/pam.d/other。


每个文件由如下格式的文本行所构成:    

module-type control-flag module-path arguments    

每个字段的含义和/etc/pam.conf中的相同。





                                                                        Arthur.WANG

                                                                        2015.4.1

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30067573/viewspace-1482565/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30067573/viewspace-1482565/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值