Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67923
  • 博文数量: 27
  • 博客积分: 1096
  • 博客等级: 少尉
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-13 19:21
文章分类

全部博文(27)

文章存档

2011年(1)

2008年(26)

我的朋友

分类: LINUX

2008-07-13 19:33:02

PAM:基于Pluggable Authentication Modules(可插入验证模块,简称PAM)的验证机制.
主要用于应用程序的统一身份验证方式.

/etc/pam.d/目录包括所有支持PAM应用程序的PAM配置文件。每个支持PAM的应用程序或服务都在/etc/pam.d/目录中有一个相应的文件。而这个目录中的每个文件的名称与他们所控制访问的服务名称相同。这个文件名放置的就是它们自己的PAM配置文件,在验证请求时,应用程序通过 libpam函数库来提供服务。具体使用哪些PAM函数库进行验证,则由/etc/pam.d/目录下对应的配置文件决定。libpam 提供函数共享服务,而且可以动态载入。例如查看应用程序su是否支持pam,可用ldd /bin/su来查看它是支持libpam函数.(抱歉:有些程序不支持libpam函数但也会被PAM所验证,目前还没完全搞清楚)

PAM配置文件的格式


1、service type:
auth:用来验证用户身份,提示输入用户名和密码。
account:用来验证帐号状态:用户的密码是否过期,用户是否有权限访问某些资源。
password:禁止用户反复尝试登录,在变更密码时进行密码复杂性控制
session:用来配置并管理用户会话、进行日志记录或限制用户登陆的次数。
注:一个单独的模块可以包括一个或多个模块接口,例如,pam_unix.so包括了所有四个模块接口
2、control flag
required:要使验证过程继续,这个模块的结果必须是成功。如果失败,用户要等所有模块都完成后才会被通知。
requisite:跟required不同的是,如果失败,用户会马上被通知。
sufficient:如果模块验证失败,则忽略此结果.如果一个此模块成功,且前面没有任何标识为required的模块验证失败,那么无需其它任何结果,则这个服务就可被使用.
optional:模块结果不被理会。被标识为optional的模块只在这个界面中没有引用其它模块时才成为验证成功所必须的.
include:包含给出服务类型的指定参数。
注:required模块被调用的顺序并不重要。只有标识为sufficient和requisite的模块的调用顺序才重要。
3、module name
调用的模块名。其绝对PATH如下:
32位OS:/lib/security/
64位OS:/lib64/security/
4、module arguments
无效的参数通常会被忽略,它不会影响到PAM验证的结果。但在一些模块中,无效的参数可能会导致验证失败。一般把error写入/var/log/secure文件
阅读(1457) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~