温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux系统如何实现pam认证

发布时间:2022-01-26 11:55:22 来源:亿速云 阅读:193 作者:柒染 栏目:开发技术

这期内容当中小编将会给大家带来有关Linux系统如何实现pam认证,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、pam简介:

PMA(Pluggable Authentication Module)是一个可插入式认证模块,在Linux系统中,各种不同的应用程序都需要完成认证功能,为了实现统一调配,把所有需要认证的功能做成一个模块(认证机制特别复杂的除外,如:https),当特定的程序需要完成认证功能的时候,就去调用PMA的认证模块,这些模块都位于系统中的/lib64/security(/lib/security:32位操作系统)目录下,但并不是所有的模块都是用来完成认证的,有些模块是为了实现PAM的某些高级功能而存在的,其中PMA的认证库是由glibc提供的,应用程序最终使用哪个PMA模块,取决于/etc/pma.d/*这个目录下的定义.

二、pam认证原理

PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so。PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。认证原理图如下图所示:

Linux系统如何实现pam认证

用户访问服务器的时候,服务器的某一个服务程序把用户的谁请求发送到PAM模块进行认证。对于不同的服务器应用程序所对应的PAM模块也是不同的。如果想查看某个程序是否支持PAM认证,可以用ldd命令进行查看,例如查看查看sshd是不是支持PAM模块认证,如下图所示:

Linux系统如何实现pam认证

三、PAM认证的构成

客观地说PAM认证还是比较复杂的,这里只简单地介绍它包括四种常见认证类型(module type):

1、认证管理(authentication management)

接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。

2、帐户管理(account management)

检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。

3、密码管理(password management)

主要是用来修改用户的密码。

4、会话管理(session management)

主要是提供对会话的管理和记账(accounting)。

四、pam验证控制类型(Control Values)

验证控制类型也可以称做Control Flags,用于PAM验证类型的返回结果,具体有以下四种:

1、required验证失败时仍然继续,但返回Fail(用户不会知道哪里失败)。

2、requisite验证失败则立即结束整个验证过程,返回Fail。

3、sufficient验证成功则立即返回,不再继续,否则忽略结果并继续。

4、optional无论验证结果如何,均不会影响(通常用于session类型)。

PAM验证类型返回结果如下所示:

Linux系统如何实现pam认证

为了方便大家理解举两个例子,如下图所示:

Linux系统如何实现pam认证

Linux系统如何实现pam认证

从上面两个图可以看出当required失败后续还要继续,但最后仍是失败。requisite验证失败则立即结束。而sufficient则是验证成功则立即结束。

上述就是小编为大家分享的Linux系统如何实现pam认证了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI