ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【信息安全】PAM模块的研究(一)

【信息安全】PAM模块的研究(一)

原创 Linux操作系统 作者:kingsql 时间:2014-09-09 22:26:43 0 删除 编辑

    PAM,即Pluggable Authentication Modules(可插入式身份验证模块)最初是由Sun 公司发明的,Sun 把它作为一种验证用户身份的灵活方法。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段。PAM 最初是集成在Solaris 中,目前已移植到其它系统中,如Linux、SunOS、HP-UX 9.0 等。

    多年以来,UNIX 环境下的身份验证机制一直就是简单地把用户同他们在/etc/passwd 文件里的配置项关联起来而已。后来,因为需要有更强的安全性,而且要支持更大范围的验证机制(像智能卡),所以对灵活性更好的验证方法的需求也就应运而生。某些PAM LDAP 模块对全局的验证目录集中执行验证。

Linux-PAM

所有完善的Linux 发行版本都带Linux-PAM,它和Sun 公司PAM 标准目前的实现没有关系。PAM的概念很简单:需要验证功能的程序只需要知道有一个模块可以用来替它们执行验证功能就行了。PAM 的设置保证了模块可以随时添加、删除和重新配置—对于编译工具程序的时候就被链接进来(甚至原本就有)

的模块来说,没必要这样做。这种结构的效果就是,PAM 已经成为系统管理员极其强大的工具。

PAM 模块是通过/etc/pam.conf 文件或者/etc/pam.d 目录下的文件来进行配置的。当目录/etc/pam.d/下存在文件时,Linux-PAM 会忽略/etc/pam.conf 文件。

先看下pam.conf 文件的格式:

service_name module_type control_flag module_path arguments

Service_name 服务/进程名

指定服务/应用程序的名称(默认值为 OTHER)。

Module_type 模块类型为 Service_name 字段中的服务指定模块类型,有效的类型是auth/account/session 或passwd。

Control_flag 控制标志将指定模块的堆栈行为。控制标志可以是requisite、required、sufficient 或 optional。

Module_path 将指定实现模块的库对象的路径名称。默认情况下,它将被设为 /lib/security。

Module_options/module_args(可选字段)将指定可以传递给服务模块的选项或实参。



----------------------------------------------------
kingsql冲级大奉送
hongzhuohui@kingsql.com

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

请登录后发表评论 登录
全部评论
OCM

注册时间:2013-02-28

  • 博文量
    237
  • 访问量
    918401