1.PAM文件
/etc/pam.conf或者/etc/pam.d/ PAM配置文件
/lib(64)/security/pam_*.so 可动态加载的PAM service module
2.配置文件格式
/etc/pam.conf:主配置文件
service type control module-path module-arguments
/etc/pam.d/service:服务配置文件
type control module-path module-arguments
3.配置文件解析
1).service:对应服务的服务名称,所有字母必须要小写。
2).type:类型有四种:auth、account、session、password。
auth:主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。
account:主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。
password:主要是用来修改用户的密码,检测修改密码动作是否被允许以及新密码是否符合要求等。
session:主要是提供对会话的管理和记账。
3).control:用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。它有五种常用可能的值:required,requisite,sufficient,optional,include。
required:表示本模块必须返回成功才能通过认证,但是如果该模块返回失败的话,失败结果也不会立即通知用户,而是要等到同一stack 中的所有模块全部执行完毕再将失败结果返回给应用程序。可以认为是一个必要条件。
requisite:与required类似,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直 接将控制权返回给应用程序。是一个必要条件。
sufficient:表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack内的其它模块,但是如果本模块返回失败的话可以忽略。可以认为是一个充分条件。
optional:表明本模块是可选的,它的成功与否一般不会对身份认证起关键作用,其返回值一般被忽略。
include:将认证权利移交给其他文件。
4).module-path:用来指明本模块对应的程序文件的路径名,一般采用绝对路径,如果没有给出绝对路径,默认该文件在目录/lib(64)/security下面。
5).module-arguments: 是用来传递给该模块的参数。
参考资料:
http://blog.csdn.net/yueguanghaidao/article/details/7292065