快速业务通道

Linux-PAM认证方式

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-26

在linux中执行有些程序时,这些程序在执行前要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等

在linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(Pluggable Authentication Modules)可动态加载验证模块,可以按需要动态的对验证的内容进行变更,可以大大提高验证的灵活性.

linux各个发行版中,PAM使用的验证模块一般存放在/lib/security/目录下,可以使用ls命令进行查看本计算机支持哪些验证控制方式,一般的PAM模块名字例如pam_unix.so,模块可以随时在这个目录下添加和删除,这不会直接影响程序运行,具体的影响在PAM的配置目录下.

PAM的配置文件一般存放在/etc/pam.conf文件,或者/etc/pam.d/目录下.不过现在一般都会存放在/etc/pam.d/目录下,之下是相对于每个需要被PAM控制的程序的独立配置文件.当一个程序的验证方式配置在pam.conf和pam.d/下某文件中出现时,以pam.d/目录下文件为准.

查看某个程序是否支持PAM,使用命令:
  1. #ldd `which cmd` | grep libpam //cmd就代表查看的程序名
如果包含libpam库,那么该程序就支持PAM验证.

举个不是特别恰当的例子:PAM机制就相当于给一个房屋安装防盗门,也就是对要进入这间屋子的人进行控制,不让这间屋子处于一种任何人都可以随便进入的状态.

  1. 支持PAM验证呢,就是表示这屋子给安装防盗门预留了空位,
  2. 不支持PAM呢,就是说房子整个就是封闭的,人根本进不了,或者是房子基本没有墙,不需要对出入进行限制.
    Empire CMS,phome.net
  3. 在PAM机制中,PAM模块就相当于是防盗门上可以安装的各种锁具,这些锁具各有不同的特点和功能,你可以按需要安装.
  4. 相同的,在PAM中,程序的配置文件就相当于这个防盗门的制作和安装方案,安在什么地方,在支持的各种锁具中选择合适的锁,然后是开这些锁的先后顺序等这些具体使用规范.

PAM的各种模块是开发人员预先开发好的,而我们要做的是合理的使用这些模块,让它们保护需要保护的程序.要关注的是PAM的配置文件目录/etc/pam.d/

拿例子说事,以login这个登录程序为例子,文件名是/etc/pam.d/login,内容是(其中一部分):
  1. auth optional pam_faildelay.so delay=3000000
  2. auth required pam_securetty.so
  3. auth requisite pam_nologin.so
  4. session [success=ok ignore=ignore module_unknow=ignore default=bad] pam_selinux.so close
  5. @include common-auth
从上面可以看出来,配置文件是按行指定的,每一行是一个完整的定义. 一般第一列指定的内容是:module-type,一共就只有4种,分别是:
  1. auth:对用户身份进行识别,如提示输入密码,判断是root否;
  2. account:对账号各项属性进行检查,如是否允许登录,是否达到最大用户数;
  3. session:定义登录前,及退出后所要进行的操作,如登录连接信息,用户数据的打开和关闭,挂载fs;
    Empire CMS,phome.net
  4. password:使用用户信息来更新数据,如修改用户密码.
第二列内容是:control-flag,有很多,不过一般常用的是4种,分别是:
  1. optional:不进行成功与否的返回,一般返回一个pam_ignore;
  2. required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败;
  3. requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败;
  4. sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值.
第三列内容是PAM模块的存放路径,默认是在/lib/security/目录下,如果在此默认路径下,要填写绝对路径. 第四列内容是PAM模块参数,这个

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号