Pam 认证

来源:互联网 发布:如何生成数据库关系图 编辑:程序博客网 时间:2024/04/29 21:11
Pam 认证 - m15142436758 - JoyBank的博客
 
Pam 认证 - m15142436758 - JoyBank的博客

1.PAM工作流程

浅谈linux pam体系

2.PAM 配置文件语法

module-type  control-flag module_path  optional

在/etc/pam.d/下的文件中,与服务名称相对应的文件,为该服务的pam验证文件,例如服务为sshd,则在/etc/pam.d下存在 sshd这个文件,里面包含sshd验证规则。其中有个一特殊的文件为other,如果有的服务与之没有向对应的文件,则对应other。

module-type

服务类型,即 auth、account、session 或 password。

验证模块(auth)用于验证用户或设置/销毁凭证。

帐户管理模块(account)将执行与访问、帐户及凭证有效期、密码限制/规则等有关的操作。

会话管理模块(session)用于初始化和终止会话。

密码管理模块(passwd)将执行与密码更改/更新有关的操作。

control-flag

用于指明在确定服务的集成成败值过程中模块所起的作用。有效的控制标志包括 include、optional、required、requisite 和 sufficient。

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

requisite 与required类似,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直 接将控制权返回给应用程序。是一个必要条件。

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

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

控制值模块执行结果动作最终结果requisite成功继续检查下一个
Stop取决于其他模块失败        失败required成功继续检查下一个取决于其他模块失败继续检查下一个失败sufficient成功Stop成功失败继续检查下一个取决于其他模块optional成功继续检查下一个取决于其他模块失败include无关执行包含文件中的验证取决于其他模块

module-path

用于实现服务的库对象的路径,一般都只写库名,库的路径一般为/lib/security(32位),/lib64/security(64位)

module-options

传递给服务模块的选项,可选。

几个公用的参数:

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

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

use_first_pass 表明该模块不能提示用户输入密码,而应使用前一个模块从用户那里得到的密码。

try_first_pass 表明该模块首先应当使用前一个模块从用户那里得到的密码,如果该密码验证不通过,再提示用户输入新的密码。

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

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

 
0 0
原创粉丝点击