13.5.4 【Linux】常用模块简介

news2024/10/9 3:28:58

登陆所需要的PAM流程:

上面这个表格当中使用到非常多的 PAM 模块,每个模块的功能都不太相同,详细的模块情报可以在你的系统中找到:

/etc/pam.d/*:每个程序个别的 PAM 配置文件;

/lib64/security/*:PAM 模块文件的实际放置目录;

/etc/security/*:其他 PAM 环境的配置文件;

/usr/share/doc/pam-*/:详细的 PAM 说明文档。

pam_securetty.so: 限制系统管理员 (root) 只能够从安全的 (secure) 终端机登陆;那什么是终端机?例如 tty1, tty2 等就是传统的终端机设备名称。那么安全的终端机设置呢? 就写在 /etc/securetty 这个文件中。

pam_nologin.so: 这个模块可以限制一般使用者是否能够登陆主机之用。当 /etc/nologin这个文件存在时,则所有一般使用者均无法再登陆系统了!若 /etc/nologin 存在,则一般使用者在登陆时, 在他们的终端机上会将该文件的内容显示出来!所以,正常的情况下,这个文件应该是不能存在系统中的。 但这个模块对 root 以及已经登陆系统中的一般帐号并没有影响。

pam_selinux.so: SELinux 是个针对程序来进行细部管理权限的功能。

pam_console.so: 当系统出现某些问题,或者是某些时刻你需要使用特殊的终端接口(例如 RS232 之类的终端连线设备) 登陆主机时, 这个模块可以帮助处理一些文件权限的问题,让使用者可以通过特殊终端接口 (console) 顺利的登陆系统。

pam_loginuid.so: 我们知道系统帐号与一般帐号的 UID 是不同的!一般帐号 UID 均大于 1000 才合理。 因此,为了验证使用者的 UID 真的是我们所需要的数值,可以使用这个模块来进行规范。

pam_env.so: 用来设置环境变量的一个模块,如果你有需要额外的环境变量设置,可以参考 /etc/security/pam_env.conf 这个文件的详细说明。

pam_unix.so: 这个模块可以用在验证阶段的认证功能,可以用在授权阶段的帐号授权管理, 可以用在会议阶段的登录文件记录等,甚至也可以用在密码更新阶段的检验。

pam_pwquality.so: 可以用来检验密码的强度!包括密码是否在字典中,密码输入几次都失败就断掉此次连线等功能,都是这模块提供的! 最早之前其实使用的是pam_cracklib.so 这个模块,后来改成 pam_pwquality.so 这个模块,但此模块完全相容于 pam_cracklib.so, 同时提供了 /etc/security/pwquality.conf 这个文件可以额外指定默认值。

login 的 PAM 验证机制流程是这样的:

1. 验证阶段 (auth):首先,(a)会先经过 pam_securetty.so 判断,如果使用者是 root时,则会参考 /etc/securetty 的设置; 接下来(b)经过 pam_env.so 设置额外的环境变量;再(c)通过 pam_unix.so 检验密码,若通过则回报 login 程序;若不通过则(d)继续往下以 pam_succeed_if.so 判断 UID 是否大于 1000 ,若小于 1000则回报失败,否则再往下 (e)以 pam_deny.so 拒绝连线。

2.授权阶段 (account):(a)先以 pam_nologin.so 判断 /etc/nologin 是否存在,若存在则不许一般使用者登陆; (b)接下来以 pam_unix.so 及 pam_localuser.so 进行帐号管理,再以 (c) pam_succeed_if.so 判断 UID 是否小于 1000 ,若小于 1000 则不记录登录信息。(d)最后以 pam_permit.so 允许该帐号登陆。

3. 密码阶段 (password):(a)先以 pam_pwquality.so 设置密码仅能尝试错误 3 次;(b)接下来以 pam_unix.so 通过 sha512, shadow 等功能进行密码检验,若通过则回报login 程序,若不通过则 (c)以 pam_deny.so 拒绝登陆。

4. 会议阶段 (session):(a)先以 pam_selinux.so 暂时关闭 SELinux;(b)使用pam_limits.so 设置好使用者能够操作的系统资源; (c)登陆成功后开始记录相关信息在登录文件中; (d)以 pam_loginuid.so 规范不同的 UID 权限;(e)打开pam_selinux.so 的功能。

依据验证类别 (type) 来看,然后先由 login 的设置值去查阅,如果出现“ includesystem-auth ” 就转到 system-auth 文件中的相同类别,去取得额外的验证流程就是了。然后再到下一个验证类别,最终将所有的验证跑完! 就结束这次的 PAM 验证。

例题:为什么 root 无法以 telnet 直接登陆系统,但是却能够使用 ssh 直接登陆?

答:一般来说, telnet 会引用 login 的 PAM 模块,而 login 的验证阶段会有 /etc/securetty 的限制! 由于远端连线属于 pts/n (n 为数字) 的动态终端机接口设备名称,并没有写入到 /etc/securetty, 因此 root 无法以 telnet 登陆远端主机。至于 ssh 使用的是 /etc/pam.d/sshd 这个模块, 你可以查阅一下该模块,由于该模块的验证阶段并没有加入 pam_securetty ,因此就没有/etc/securetty 的限制!故可以从远端直接连线到服务器端。

 

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

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

相关文章

网络:HCIA 1

1. 通信系统的组成: 终端设备:电脑 中间设备:交换机、路由器、防火墙。 传输介质:网线(双绞线)传输距离一般为100米,传输的是电信号。 光纤传输的是光信号。 光纤接口类型,方形接口…

前端(九)——探索微信小程序、Vue、React和Uniapp生命周期

🙂博主:小猫娃来啦 🙂文章核心:探索微信小程序、Vue、React和Uniapp生命周期 文章目录 微信小程序、Vue、React和Uniapp的基本定义和应用领域微信小程序生命周期生命周期概述页面生命周期应用生命周期组件和API的生命周期钩子 Vu…

看完这篇,别再说不会Spring 分库分表了

多数据源,读写分离,分库分表,基本上已经是现在任何一个项目的基本配置了,在之前的文章Spring多数据源实现https://blog.csdn.net/wangerrong/article/details/131910740 里讲了多数据源的实现,其实已经包含了读写分离…

广东省《5A物理抗菌纺织品》团体标准颁布

近日,经广东省标准化协会批准发布由广东人仁康科技有限公司主导制定的《5A物理抗菌纺织品》(T/GDBX 073—2023)团体标准,于2023年7月21日发布并实施。 根据标准制修订工作流程,该项标准2022年由人仁康和广检集团组织起…

【【51单片机AD/DA的分析】】

51单片机AD/DA的分析 看似单片机实验,其实是要学好数电 模数转换 与 数模转换 运算放大器 DA的转换就是利用运算放大器实现的 输出电压v0-(D7~D0)/256 x (VrefxRfb)/R D7~D0 就是我们控制的按键看输入多少 然后再划分256份 Vref是我们设置的一个基准电压 PWM 这种…

若依分离版——解决配置双数据源oracle,mysql分页错误问题

1. 按照若依的手册配置双数据源mysql,oracle 2. 在service指定 数据源 DataSource(value DataSourceType.MASTER) 或者DataSource(value DataSourceType.SLAVE) Service public class SysPostServiceImpl implements ISysPostService {/*** 查询岗位信息集合* …

分享10个NodeJS相关的专业级工具

Node.js已成为开发人员创建强大且可扩展的Web应用程序的首选选项。根据2022年StackOverflow开发者调查,Node.js被评为专业开发人员中使用最广泛的Web框架。这个成功可以归功于其庞大的生态系统,其中提供了许多工具和框架。了解并接纳这个生态系统对于优化…

前端面试题-JS进阶

1 内置类型 JS 中分为七种内置类型,七种内置类型⼜分为两⼤类型:基本类型和对象( Object )。基本类型有六种: null , undefined , boolea n, number , string &#xff…

【数据动态填充到element表格;将带有标签的数据展示为文本格式】

一&#xff1a;数据动态填充到element表格&#xff1b; 二&#xff1a;将带有标签的数据展示为文本格式&#xff1b; 1、 <el-row><el-col :span"24"><el-tabs type"border-card"><el-tab-pane label"返回值"><el-…

计算机流水线在正常程序中的体现(效果可视)

众所周知,流水线技术对于软件开发人员不是可见的(visiable),毕竟已经在在机器语言之下,是组成机器语言的基本逻辑 但今天我就带领大家看看我新发现的结果,那就是流水线的可视效果,包括流水线预测技术的侧面体现,当然也是可见的 首先我先声明一下需要的基础,需要懂16位以及32位操…

leetcode 面试题01.04 回文排列

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;回文排列 思路&#xff1a;回文串两种可能。只有一个字符出现1次其他字符都是偶数次。要么都是偶数次。统计字母的个数即可。 代码&#xff1a; bool canPermutePalindrome(char* s){// 回文串两种可能// 1. 只有一个字…

几百本常用计算机开发语言电子书链接

GitHub - XiangLinPro/IT_book: 本项目收藏这些年来看过或者听过的一些不错的常用的上千本书籍&#xff0c;没准你想找的书就在这里呢&#xff0c;包含了互联网行业大多数书籍和面试经验题目等等。有人工智能系列&#xff08;常用深度学习框架TensorFlow、pytorch、keras。NLP、…

JavaWeb银行项目

主要功能 实现了贷款、存款、理财、提现、充值、开户、绑卡、转账等功能。 介绍 1、这个是一个类似有支付宝一样的web项目。 2、登录和注册&#xff0c;都是通过手机号来进行的。 3、注册的新用户需要先进行开户操作&#xff0c;然后进行绑卡操作。 4、在开户的时候回给你…

计算机专业还会继续火热吗

目录 引言 1.计算机专业火热的原因 2.学好计算机需要的技能 3.计算机未来会持续火热吗 4.博主的建议 引言 今年&#xff0c;张雪峰老师在高考志愿填报领域再次火了一把。他主张专业的实用性&#xff0c;建议家长填报那些未来不愁就业的专业&#xff0c;不好就业的专业不要去…

顺序表操作详解

文章目录 一、线性表二、顺序表1、概念2、接口实现1>初始化顺序表2>操作结束后释放空间3>打印顺序表4>尾插5>头插6>头删7>尾删8>顺序表查找9>顺序表在pos位置插入x10>顺序表删除pos位置的值 一、线性表 线性表&#xff08;linear list&#xff0…

爬取微博热搜榜并进行数据分析

设计方案 爬虫爬取的内容 &#xff1a;爬取微博热搜榜数据。 网络爬虫设计方案概述 用requests库访问页面用get方法获取页面资源&#xff0c;登录页面对页面HTML进行分析&#xff0c;用beautifulsoup库获取并提取自己所需要的信息。再讲数据保存到CSV文件中&#xff0c;进行…

《深度探索c++对象模型》第二章笔记

非原创&#xff0c;在学习 目录 2 构造函数语意学(The Semantics of Constructors) 2.1 Default Constructor的构建操作 “带有Default Constructor”的Member Class Object “带有Default Constructor”的Base Class “带有一个Virtual Function”的Class “带有一个Virtu…

机器学习深度学习——向量求导问题

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——图像分类数据集 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮助…

【低代码专题方案】iPaaS运维方案,助力企业集成平台智能化高效运维

01 场景背景 随着IT行业的发展和各家企业IT建设的需要&#xff0c;信息系统移动化、社交化、大数据、系统互联、数据打通等需求不断增多&#xff0c;企业集成平台占据各个企业领域&#xff0c;成为各业务系统数据传输的中枢。 集成平台承接的业务系统越多&#xff0c;集成平台…

详解zookeeper安装使用

目录 1.概述 1.1.功能 1.2.特点 1.3.数据结构 2.安装 2.1.Windows 2.2.Linux 3.基础操作 3.1.增 3.2.删 3.3.改 3.4.查 3.5.监听 4.JAVA操作Zookeeper 4.1.依赖 4.2.客户端 4.3.增 4.4.删 4.5.查 4.6.改 1.概述 1.1.功能 zookeeper&#xff0c;Apache旗下…