Linux身份鉴别机制原理
2024-09-05 17:58:26
传统的UNIX身份鉴别机制原理
传统的UNIX身份鉴别即口令认证方式,它主要通过识别用户的用户名或者UID号获取在/etc/shadow中存放的对应用户密码密文等信息,然后获取用户输入密码并采用crypt()函数对获得的输入密码进行加密,当然加密方式是与原用户密码的加密方式是一致的,然后将这两个密文进行比较,如果一致则通过验证,如果不一致则拒绝赋予权限。接下来以登录Linux系统为例,说明登录过程中传统UNIX认证方式对用户帐号的鉴别过程。Linux用户在登录主机时会出现一个输入账号及密码的界面,Linux会先找寻 /etc/passwd 里面是否有这个账号,如果拒绝用户登录请求,如果有的话则将该账号对应的 UID 、GID、该账号的主目录与shell设定 一并读出,接着就是将用户输入密码进行加密,然后读取/etc/shadow 中存放的密码,将这个密码与用户输入并加密的密码进行核对,如果核对成功,则进入系统。
Linux 提供getpwnam()来获取用户登录的相关信息,返回的是一个passwd型的结构体,该结构体就包含了用户帐号的各种信息,该结构体如下所示。
PAM框架
PAM 为了实现其插件功能和易用性,采取了分层设计思想。就是让各鉴别模块从应用程序中独立出来,然后通过 PAM的API、 SPI作为两者联系的纽带,这样应用程序就可以根据需要灵活地在其中“插入”所需要的鉴别功能模块,从而真正实现了在认证和鉴别基础上的随需应变。PAM框架如下图所示:
最新文章
- CrashMonkey4IOS App测试
- Python:如何删除文件中的空白行?
- Lock读写锁技术的妙用
- Java中的IO流系统详解(转载)
- 文件流StreamReader和StreamWriter的使用
- HTML+CSS学习笔记 (13) - CSS代码缩写,占用更少的带宽
- linux源代码阅读笔记 linux文件系统(二)
- Enterprise Suse运维
- SHELL学习笔记----IF条件判断,判断条件
- JQuery设置input属性(disabled、enabled)
- Maven deploy
- Github Blog 搭建手册
- C#中另辟蹊径解决JSON / XML互转的问题
- [Jenkins]怎么删除jenkins里项目配置的svn记录
- 在cmd中设置字体
- CodeForces 700B Connecting Universities
- c#中常用集合类和集合接口之集合类系列【转】
- C++进程间通信的十一种方法
- 转:IIS 应用程序池 内存 自动回收
- yml实例
热门文章
- 【九度OJ】题目1080:进制转换 解题报告
- 【机器学*】k-*邻算法(kNN) 学*笔记
- 【LeetCode】789. Escape The Ghosts 解题报告(Python & C++)
- codeforces626D . Jerry's Protest
- 51Nod 1279:扔盘子(二分||单调栈)
- Spring Boot实战二:集成Mybatis
- 初识JavaScript变量
- Capstone CS5266替代AG9311 Type-C转HDMI带PD3.0+USB3.0拓展坞方案
- 基于Spring MVC + Spring + MyBatis的【医院就诊挂号系统】
- k8s污点