PAM从入门到精通(一)

news2024/11/26 14:46:30

本文参考以下博文:

PAM模块详解及sudo命令

PAM 的应用开发和内部实现源码分析

PAM详解(一)PAM介绍

百度百科 —— PAM

Oracle Solaris 10 开发者安全性指南 —— PAM 框架介绍

特此致谢!

零、引言

身份认证是操作系统安全的重要机制之一,系统通过认证机制核查用户的身份证明,并作为用户进入系统的判定条件,是防止恶意用户进入系统的第一道门槛。近年来认证理论和技术得到了迅速发展,产生了各种认证机制,如:口令机制、RSA、DCE、kerberos认证体制、S/Key和基于智能卡的身份认证等。然而,当系统中引入新的认证机制时,一些系统入口登录服务如login、rlogin和telnet等应用程序就必须改写以适应新的认证机制。

为了解决这一问题,1995年Sun公司的Vipin Samar和Charlie Lai提出了PAM,并将其应用在Solaris系统上。PAM框架将应用程序与具体的认证机制分离,使得系统改变认证机制时,不再需要修改采用认证机制的应用程序,而只要由管理员配置应用程序的认证服务模块极大地提高了认证机制的通用性与灵活性。

现在大多数操作系统都采用PAM实现身份认证,有Linux系统Linux-PAMFreeBSD5.x采用的OpenPAM(FreeBSD 4.x采用的是Linux-PAM)等。它们的实现原理一样,只是实现细节有所不同而已。本系列文章针对于Linux-PAM进行介绍和详细解析。

一、介绍

PAM的英文全称是Pluggable Authentication Modules,中文译为可插拔认证模块。引言中已提到,PAM是由Sun提出的一种认证机制,其通过提供一些动态链接库和一套统一的API(应用程序接口)以及一连串的验证机制,将系统提供的服务和该服务的认证方式分开使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。只要使用者将验证阶段的需求告知PAM后,PAM就能够汇报使用者验证的结果(成功或者失败)。

相应地,Linux-PAM包当然也包含本地系统管理员用来控制应用程序如何对用户进行身份验证的可插拔身份验证模块。

二、框架

PAM框架由以下四部分组成:

(1)PAM应用程序,也称为消费方;

(2)PAM库;

(3)PAM配置文件;

(4)PAM服务模块,也称为提供者。

该框架为与验证相关的活动提供了统一的执行方式。采用该方式,(1)应用程序开发者不必了解策略的语义即可使用PAM服务;(2)算法是集中提供的,可以独立于各个应用程序对算法进行修改;(3)借助 PAM,管理员可以根据特定系统的需要调整验证过程,而不必更改任何应用程序,调整是通过PAM 配置文件pam.conf 来实现的。

PAM体系结构如下图所示:

应用程序通过PAM应用编程接口 (Application Programming Interface, API) 与PAM库进行通信。PAM服务模块通过PAM服务提供者接口 (Service Provider Interface, SPI)与PAM库进行通信。通过这种方式,PAM库可使应用程序和模块相互进行通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1097252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle-truncate误删数据恢复

前言: truncate操作误删数据之后想恢复数据通常比较困难,因为truncate操作属于ddl操作无法使用直接undo闪回查询方式恢复数据,并且由于空间大小、备份时间以及变更操作不规范原因,往往在执行操作之前没有对表进行CTAS备份或者其他…

【Java】枚举 Enum

枚举 Enum 枚举的使用Enum 类的常用方法枚举优缺点用枚举实现一个单例模式 枚举的主要用途是:将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式: public static int final RED 1; public static int final GREEN 2; publi…

vue3 状态管理pinia

1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 ,是 Vuex 状态管理工具的替代品 特点优势: 提供更加简单的API(去掉了mutation)提供符合组合式风格的API(和Vue3新语法统一)去掉modules的概念,每一个store都是一个独立的模块配合TypeScript更加友好,提供可靠的…

微信里写周报添加到公司办公平台的方法

概要 微信和公司用的办公平台互通,我们已经说过几篇。 这次将给大家介绍,如何在微信里写周报内容,添加到公司办公平台的周报应用里。 工作中,如果出差在外,或者回到家想要汇报一周的工作情况的时候,不用…

Druid连接池最小连接数设置失效问题

问题发现: 配置 当项目启动后 线程池确实是初始化了5条连接,但是当项目运行一段时间后,5条连接确消失了,只会程序用到得时候,再去初始化连接,这样有点违背了参数设置得意义,后来通过查阅资料发…

简单好用的文档管理系统MinDoc

什么是 MinDoc ? MinDoc 是一款针对 IT团队开发的简单好用的文档管理系统。MinDoc 的前身是 SmartWiki 文档系统。SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。可以方便用户部…

vue 01

安装vscode 按照如下方式汉化 给vscode 安装插件 Vetur 安装node.js 下载地址https://nodejs.org/en/download/,选择windows msi 在cmd下检查如下: 检查nodejs版本:node --version 检查npm的安装版本:npm -v 执行命令: npm i…

学习rsync

文章目录 一、rsync介绍二、rsync的特点三、本地文件同步四、远程文件同步五、免密文件同步和更改端口后的文件同步六、rsync作为系统服务七、应用举例七、给rsync服务添加密码八、rsync搭配inotify进行实时同步九、xinetd托管rsyncd服务 一、rsync介绍 1.sync同步&#xff1a…

Python玫瑰花

系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心https://want…

常见的作物模型应用技巧!DSSAT模型、APSIM模型、WOFOST模型与PCSE模型等应用

①最新DSSAT作物模型建模方法及应用 DSSAT模型内核算法是基于Fortran语言开发的,软件界面是基于C进行开发。了解和熟悉DSSAT模型的关键算法和软件的操作是学习DSSAT模型的基础。此外,想要成为一名优秀的作物模型使用者与科研团队不可或缺的人才&#xff…

Windows 安装 nvm 提示 ‘“node“‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

Windows 安装 nvm 提示 ‘“node”’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 解决办法 先卸载电脑中原有 nodejs 版本,再安装 nvm 即可。 安装完成之后记得重新打开终端 使用 安装 nodejs 18 添加环境变量 在 Path 里添加这两个变量名 结果 现…

XPS测试常见问题及解答(二)-科学指南针

在做X 射线光电子能谱(XPS)测试时,科学指南针检测平台工作人员在与很多同学沟通中了解到,好多同学仅仅是通过文献或者师兄师姐的推荐对XPS测试有了解,但是对于其原理还属于小白阶段,针对此,科学指南针检测平台团队组织…

认识京东联盟API,获取APPkey和APPsecret|直接调用KEY方式

做过淘客开发的一定接触过淘宝API开发。 而做京东联盟软件自然离不开京东联盟API。 京东联盟API目前上线的有很多。京东平台商品API。 https://jos.jd.com/api/list.htm?id117 Paste_Image.png 但是京东联盟API获取比较难,没办法在线申请,需要找官方…

NuGet包使用方法

NuGet包使用方法 必备条件 安装包括 dotnet CLI 的 .NET Core SDK。 从 Visual Studio 2017 开始,dotnet CLI 将自动随任何与 .NET Core 相关的工作负载一起安装。 如果你还没有帐户,请在 nuget.org 上注册一个免费帐户。 创建新帐户会发送确认电子邮…

Everything和SVN结合使用-在Everything中显示SVN

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

实录分享 | Alluxio 在网易大数据的应用与优化

欢迎来到【微直播间】,2min纵览大咖观点 本次分享主要包括四个方面: 背景介绍;对象存储场景优化;Impala 引擎适配;通用功能增强。 一、 背景介绍 网易有数大数据基础平台NDH:NDH 是网易对标 Cloudera C…

【Linux学习笔记】代码编译工具gcc/g++

1. 程序的翻译1.1. 预处理1.2. 编译1.3. 汇编1.4. 链接 2. 动态链接和静态链接2.1. 动态链接2.2. 静态链接2.3. 动态链接和静态链接的区别2.4. 动态链接和静态链接的验证 3. make/makefile3.1. 依赖方法和依赖关系3.2. 写一个makefile文件3.3. PHONY的意义3.4. makefile的推导规…

Ubuntu:VS Code IDE安装ESP-IDF【保姆级】(草稿)

物联网开发学习笔记——目录索引 Visual Studio Code(简称“VS Code”)是Microsoft向开发者们提供的一款真正的跨平台编辑器。 参考: VS Code官网:Visual Studio Code - Code Editing. Redefined 乐鑫官网:ESP-IDF …

[网站部署03]宝塔+worldPress部署Ripro主题网站

1.下载好主题网站上传到下方目录即可 下载地址:请自行百度搜索,官网收费 下载好压缩包上传到/www/wwwroot/你的网站目录/wp-content/themes 2.回到Worldpress后台点击外观可以看到主题网站 http://192.168.49.128/wp-admin/themes.php 剩下的就是设置…

【matlab海洋专题】高级玫瑰图--风速风向频率玫瑰图--此图细节较多

玫瑰图分享过好多 这一次的还是不一样,细节较多 本期内容 【matlab海洋专题】高级玫瑰图–风速风向频率玫瑰图–此图细节较多: 总结起来,确实不好画! 图片如下: 图片名称我不知道,我意会为: 风速风向…