linux PAM可插拔认证模块介绍

news/2025/1/7 20:44:07/文章来源:https://www.cnblogs.com/gpysir/p/18658343
PAM(Pluggable Authentication Modules )
介绍
通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开
使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段
 
流程图说明:
1、系统官理员通过PAM配置文件来制定不同应用程序的不同认证策略;
2、应用程序开发者通过在服务程序中使用PAM API(文件名格式pam_xxx)来实现对认证方法的调用;
3、PAM服务模块的开发者则利用PAM SPI来编写模块(主要调用函数pam_sm_XXX)供PAM接口库调用,将不同的认证机制加入到系统中;
4、PAM接口库(libpam.so)则读取配置文件,将应用程序和相应的PAM服务模块联系起来
 
相关文件:
pam接口库:/lib64/libpam.so.0
pam模块:/lib64/security/pam_*
模块配置文件:/etc/security/ #存放一些复杂的模块配置文件及说明
应用调用模块的配置文件:/etc/pam.d/ #每个应用单独创建一个文件,用于模块配置
 
查看某个程序是否支持pam模块
ldd /usr/sbin/vsftpd | grep libpam
 
/etc/pam.d/*配置文件格式:
type control module-path arguments
 
参数说明
application:服务名
如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
module-type:模块类型
control:PAM库该如何处理与该服务相关的PAM模块的成功或失败情况
module-path:用来指明本模块对应的程序文件的路径名
Arguments:用来传递给该模块的参数,当参数太多时,即用到了/etc/security/下的模板
 
 
常用模块介绍
1、pam_shells.so:检查有效shell环境
如/etc/pam.d/login
即检查/etc/shells下的shell类型,不在此文件的shell用户将禁止登录
pam_securetty.so:只允许root用户在/etc/securetty列出的安全终端上登录
如/etc/pam.d/remote
 
2、pam_nologin.so:禁止用户登录
当/etc/nologin文件存在时,将禁止非root用户登录
如果用户shell是/sbin/nologin时,当用户登录时,将显示/etc/nologin文件内容,并拒绝登录
 
3、pam_limits.so:用户级别实现对其使用资源的限制
修改限制的实现方式:
命令方式:ulimit,立即生效,当前终端有效
参数有 -n 每个进程最多的打开的文件描述符个数
-u 最大用户进程数
-S 使用soft(软)资源限制
-H 使用hard(硬)资源限制
配置文件方式:/etc/security/limits.conf,/etc/security/limits.d/*.conf
配置文件说明:每行一个定义:
 
如限制用户最多打开文件数和运行进程数
/etc/pam.d/system-auth
session required pam.imits.o
vim/etc/security/limits.conf
apache - nofile 10240 用户apache可打开10240个文件
student hard nproc 20 用户student不能运行超过20个进程
 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大三上加分细则

1、做液压项目 2、恋爱成功 3、通过软考中级

Head First 设计模式(中文版)PDF、EPUB免费下载

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、…

Java从入门到精通(第6版)PDF、EPUB免费下载

《Java从入门到精通(第6版)(软件开发视频大讲堂)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为23章,内容包括初识Java,熟悉Eclipse开发工具,Java语言基础,流程控制,数组,类和对象,继承、多…

rust学习十五.5、引用循环和内存泄露

这个章节主要是为了引出弱引用这个奇怪的概念。 说实在,这个没有什么太好写的,因为内容比较晦涩难懂!在其它语言中,也常常存在所谓循环引用问题,和大部分问题一样,在其它语言中这些基本上都不是问题。但是在rust中,这是一个致命的问题。例如有a,b两个点,a指向b,b指向a…

腾讯云轻量服务器搭建彩虹聚合 DNS 聚合管理系统教程

彩虹聚合 DNS 管理系统具备诸多实用功能,其中包括 SSL 证书申请与自动部署功能,它能够从多个渠道申请 SSL 证书,像 Lets Encrypt 等,并自动将证书部署到各式各样的面板、云服务商以及服务器等环境中,同时还支持 CNAME 代理功能,为域名管理和安全访问提供了有力保障。 一、…

Django 3 Web应用开发实战PDF、EPUB免费下载

以DjangoWeb项目开发为主线,从源码的角度,深入剖析Django3企业级开发技术。适读人群 :适合有一定Python基础的Web开发人员阅读,也可用作培训机构和大中专院校相关专业的教学参考书。 以DjangoWeb项目开发为主线,从源码的角度,深入剖析Django3企业级开发技术。电子版仅供预…

网络流23题做题笔记

省流:我没意见link【模板】网络最大流 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; using ll=long long; const int N=1e5+5; const ll inf=1e16+5; int n,m,S,T,head[N],idx=1; struct edge{int t…

LAS点云如何转换为3DTiles格式?用这款免费工具轻松搞定!

概述 随着数字孪生和三维城市模型技术的迅速发展,点云数据的使用越来越广泛。而LAS格式作为常见的点云数据存储格式,因其精确度高、数据丰富,成为了地形测绘、建筑建模等领域的主流数据源。然而,如何将这些庞大的LAS点云数据转换成适用于Web端展示的3DTiles格式,成了许多开…

linux系统串口终端软件显示异常解决方法,触觉智能出品

分享linux系统串口终端软件显示异常解决方法,以xshell软件为例本文介绍linux系统串口终端软件显示异常解决方法,以xshell软件为例。使用触觉智能的Purple Pi R1双网口开发板演示,内置双核A7 1.2Ghz处理器,支持WiFi与丰富GPIO拓展,是嵌入式新人入门学习的高性价比开发板! …

SecureFX for Mac FTP/SSH传输工具

SecureFX for Mac FTP/SSH传输工具 SecureFX mac破解版是一款Mac平台的FTP/SSH传输工具。SecureFX for Mac支持三种文件传输协议:FTP、SFTP 和 FTP over SSH2。它可以提供安全文件传输。无论您连接的是任何一种操作系统的服务器,它都能提供安全的传输服务。它主要用于Linux操…

Debian 11/12一键更换国内系统源

有时候买了国内的服务器,更新系统或者安装软件速度相当慢,这时候我们可以将系统源一键更换为国内的源,速度就会快很多!一、备份现有apt源配置 cp -a /etc/apt/sources.list /etc/apt/sources.list.bak二、替换为其他apt源 Debian11 1、清华源 这是一条命令,全部复制后,直…

创建销售订单BAPI报错,SLS_LORD 033

只提示一个凭证 不能保存的消息,没有任何提示及字段信息 跟消息断点发现是被增强卡住了