用户鉴别: 就是用户向系统以一种安全方式提交自己得×××明,由系统确认用户的身份是否属实的过程。
1)初期linux系统的用户鉴别过程和各种unix一样;管理员为用户建立账号并制定一个口令,存放于/ectc/passwd中当用户登录时输入用户名和密码,系统会将口令加密并与/etc/passwd文件中对应加密口令进行比较;这种思想基于只有用户自己知道他的口令。
2)后来还采用其他的鉴别用户的方法,例如用于网络环境的Kerberos以及基于智能卡的鉴别系统,但是这些鉴别方案有一个通病----实现鉴别功能的代码通常和作为应用程序的一部分而一起编译,这样一来就有问题了(如果发现所有算法存在某些缺陷或者想采用另一种鉴别方法时用户不得不重写或替换 编译源程序);是的,我们的原先鉴别系统缺乏灵活性。
3)鉴于以上原因:
a:将鉴别功能从应用中独立出来,再单独进行模块化设计,实现维护。
b:另一方面为这些鉴别模块建立标准的API,以方便应用程序能方便的使用他们提供的各种功能;同时鉴别机制对上层用户(包括应用程序的最终用户)是透明的。
 
4)一直到1995年,sun提出了满足以上方案的插件式鉴别模块(PAM)机制并首次使用;
pam:采用模块化设计和插件功能,能使得可以轻易地在应用程序中插入新的鉴别模块,从而使软件定制维持和升级更轻松;应用程序可通过pam api 方便使用使得单个程序可轻易集成多种鉴别机制;如kerberos ,diffie-hellman 用户仍可以使用同一口令登陆而感觉不到采取了各种的鉴别方法;最好的实例就是 vsftp  了;