简单来说:
pam是一个认证框架。管理员可以通过修改pam的配置为不同的应用程序制定不同的认证策略。
官方解释:
PAM(Pluggable Authentication Modules )是由 Sun 提出的一种用于实现应用程序的认证机制。其核心是一套共享库,目的是提供一个框架和一套编程接口,将认证工作由程序员交给管理员,PAM 允许管理员在多种认证方法之间作出选择,它能够改变本地认证方法而不需要重新编译与认证相关的应用程序,同时也便于向系统中添加新的认证手段。
PAM 的设计目标:
管理员可以选择认证方式,从简单的密码到智能卡系统。
可以为不同的程序配置不同的认证机制。如 使 telnet 使用 S/Key 认证。而本机的 login 缺省使用一般的 UNIX password。
支持程序的显示方式的需求。如 login 需要基于终端的显示,而 dtlogin 需要 X 显示,而`ftp' 和 `telnet'需要透过网络来认证。
支持为一个程序配置同时使用多种认证机制。
可是用户在使用多种认证机制时, 不必为同一个密码敲入多次。
可是用户在认真时需要输入多个密码。
当底层的认证机制改变时上层软件不需要修改。
结构为 system authentication 提供一个 pluggable_ model。
必须能满足现有的服务需要。
PAM 的功能包括:
加密口令(包括 DES 以外的算法);
对用户进行资源限制,防止 DoS 攻击;
允许随意 Shadow 口令;
限制特定用户在指定时间从指定地点登录;
引入概念"client plug-in agents",使 PAM 支持 C/S 应用中的机器--机器认证成为可能。
PAM支持的四种管理界面:
1、认证管理(authentication management)
主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。
2、帐户管理(account management)
主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。
3、密码管理(password management)
主要是用来修改用户的密码。
4、会话管理(session management)
主要是提供对会话的管理和记账(accounting)。