关键词:
可插入式验证模块(PAM)
。可插入式验证木块 。应用程序调用libpam函数来验证和授权用户 。libpam基于应用程序的PAM配置文件做检测 。可以通过libc在NSS中检查 。共享的,动态可配置代码 。文档:/usr/share/doc/pam-<version>/
#man -k pam_ //打印linux可供使用的pam模块
PAM操作
。/lib/security/PAM模块 。每个模块执行一个通过(pass)或失败(fail)测试 。在/etc/security/中的文件会影响到一些模块如何执行他们的测试 。/etc/pam.d/PAM模块 。服务文件决定了怎样/何时模块被使用在特定的程序上
/etc/pam.d/文件:测试
。测试分成四组:
。auth 认证用户是否为此用户
。account 用于给账户授权
。password 控制密码的修改
。session 打开,断开并记录会话
。按需调用每个分组并提供各自的结果给服务。
/etc/pam.d/文件:控制值 。控制值决定了如何测试每个分组返回总的结果 。required 必须通过测试。如果失败了仍然继续后续测试 。requisite 雷同于required,除了在失败后立即停止测试 。sufficient 如果通过测试,立即返回成功状态(比如满足第一个条件通过,直接返回成功);而如果失败,忽略测试结果继续监测 。optional 测试是否通过都无关紧要(基本用户session环节) 。include 从所包含而调用到配置文件中放回测试控制总结果 //可能这个配置文件中包含了其他配置文件。需要两个方面验证。
不建议编写系统级别验证规则,就是system-auth,尽量单独编写对应应用程序的文件。
#man pam.conf
实例:/etc/pam.d/login文件
PAM排错
。检查系统日志 。/var/log/messages 。/var/log/secure 。PAM错误会导致root被锁 。在做测试时保持一个root的shell可用 。单用户模式绕过PAM 。使用救援碟引导系统
#tar cvf ~/pam.tar /etc/pam.d/ //将/etc/pam.d下面文件打包到家目录下,并命名为pam.tar
linux操作系统与安全相关的日志记录在/var/log/secure中
可以#tail -f secure 动态刷新secure日志查看登陆输入错误密码的提示。
#man -k pam_ | less //查看当前系统下安装的pam模块
system_auth文件
。system-auth被广为使用
。通过include而被调用,它不是一个模块(比如pam_stack.so)
。包含标准认证测试
。在系统中被使用应用程序共享使用
。简单的,一致的标准系统的验证方式
pam_unix.so
。基于NSS的验证
。auth 获取从NSS获得Hash后的密码
比与Hash后输入的密码相比较
。account 检查密码的失效期
。password 处理密码的改变修改本地文件或NIS
。session 记录登陆或退出日志
网络验证 。集中密码管理 。pam_krb5.so(Kerberos V票据) 。pam_ldap.so(LDAP binds) 。pam_smb.auth.so(老的SMB认证) 。pam_winbind.so(通过winbindd的SMB) 。一些服务使用NSS/pam_unix.so 。NIS,Hesiod,一些LDAP配置
auth模块
。pam_securetty.so 如果root登陆了在/etc/securetty没有列举的终端结果失败
。pam_nologin.so 如果非root用户存在在/etc/nologin中结果失败
。pam_listfile.so 按照一个列表文件检查认证特性
。列出哪些账户被允许/拒绝
密码安全
。pam_unix.so 使用MD5 hash密码
。确保密码Hash格式不容易破解
。pam_unix.so shadow密码
。让hash的密码只对root可见
。老化密码
。也有一些其他模块支持密码老化机制
Password策略
。密码历史记录
。pam_unix.so 接remember=N参数
。密码长度
。pam_cracklib.so
。pam_passwdqc.so
。监控失败的登陆
。pam_tally.so
Session模块
。pam_limits.so 对资源的强制限制
。使用/etc/security/limits.conf
。pam_console.so 为控制台设置本地设备权限
。同样可以用在auth模块中
。pam_selinux.so 用来设置SELinux上下文属性
。pam_mkhomedir.so 如果主目录不存在将创建一个
cbam——即插即用的注意力模块(附代码)(代码片段)
论文:CBAM:ConvolutionalBlockAttentionModule代码: code目录前言1.什么是CBAM?(1)Channelattentionmodule(CAM)(2)Spatialattentionmodule(SAM)(3)CAM和SAM组合形式2.消融实验(1)Channela... 查看详情
常用的即插即用的注意力机制模块(secbam)(代码片段)
1、SENet1.1前言 SENet是最后一届ImageNet2017竞赛分类任务的冠军。SENet网络的创新点在于关注channel之间的关系,希望模型可以自动学习到不同channel特征的重要程度。为此,SENet提出了Squeeze-and-Excitation(SE)模块。 ... 查看详情
改进yolov5系列:10.最新hornet结合yolo应用首发!|eccv2022出品,多种搭配,即插即用|backbone主干递归门控卷积的高效高阶空间交互(代码片段)
YOLOAir:面向小白科研的YOLO检测项目-GitHub💡统一使用YOLOv5代码框架,结合不同模块来构建不同的YOLO目标检测模型。🌟本项目包含大量的改进方式,降低改进难度,改进点包含【Backbone特征主干】、【Neck特征融合】... 查看详情
打包基于 JavaScript 的即插即用应用程序
】打包基于JavaScript的即插即用应用程序【英文标题】:PackagingJavaScriptbasedplugandplayapplication【发布时间】:2017-04-1223:09:36【问题描述】:我正在尝试构建一个即插即用的基于Web的应用程序,我应该能够与多个其他Web应用程序(使... 查看详情
pam_tally2身份验证模块
一、概述PAM身份验证安全配置实例-强制使用强密码(用户密码安全配置)-用户SSH登录失败尝试次数超出限制后锁定账户(帐户锁定/解锁和时间设置)-允许普通用户使用sudo而不是su(限制普通用户登录到root用户)-禁止直接使用... 查看详情
如何为高度解耦、即插即用的复杂组件构建 Redux?
】如何为高度解耦、即插即用的复杂组件构建Redux?【英文标题】:HowtostructureReduxforahighlyde-coupled,plug-n-playcomplexcomponent?【发布时间】:2018-04-1012:49:16【问题描述】:我对Redux很陌生,想在我的应用程序中使用它,但我在Redux部分... 查看详情
智能家居通用管理平台-即插即用机制的设计
即插即用机制,对智能家居的推广,非常重要。没有她,老百姓估计不会使用。 好了,现在有了“智能冰箱”和它的驱动程序,SHM就可以使用它的SHDD来与冰箱交互了,并且是使用TCPIP协议通信。但... 查看详情
如何让即插即用的 WPF 应用程序创建 SQL 数据库? [关闭]
】如何让即插即用的WPF应用程序创建SQL数据库?[关闭]【英文标题】:HowtomakeaplugandplayWPFappcreateaSQLdatabase?[closed]【发布时间】:2020-11-2212:22:15【问题描述】:我目前正在学习WPF,目的是为朋友制作一个简单的应用程序。此应用程... 查看详情
第一个不支持即插即用的nt式helloworld驱动
1.安装好驱动包2.编写源代码Sources文件和makefile文件##源代码/*********************************文件名称:Driver.h*作者:左飞*完成日期:2016-9-4*********************************/#pragmaonce//保证头文件只被编译一次#ifdef__cplusplusextern"C"//兼容C代码{ 查看详情
yolov8-gradcam热力图可视化即插即用不需要对源码做任何修改!(代码片段)
...给大家带来yolov8-gradcam热力图可视化,这个可视化是即插即用,不需要对源码做任何修改喔!给您剩下的不少麻烦!代码链接:yolo-gradcam里面还有yolov5和v7的热力图可视化代码,也是即插即用,不需要对... 查看详情
macos读写ntfs即插即用.
1.安装osxfusehttps://osxfuse.github.io/2.安装brewhttps://brew.sh/index_zh-cn.html3.安装ntfs-3gbrewinstallntfs-3g4.替换本地的mount_ntfs文件sudomv/sbin/mount_ntfs/sbin/mount_ntfs.oldsudoln-s/usr/local/sbin/mount_ntf 查看详情
如何在没有 Windows 窗体的情况下接收即插即用设备通知
】如何在没有Windows窗体的情况下接收即插即用设备通知【英文标题】:HowtoreceivePlug&Playdevicenotificationswithoutawindowsform【发布时间】:2011-01-0421:26:00【问题描述】:我正在尝试编写一个可以捕获Windows消息的类库,以便在设备已... 查看详情
将即插即用设备映射到 PCI 插槽 ID,C#
】将即插即用设备映射到PCI插槽ID,C#【英文标题】:MappingPlugNPlayDevicestoPCISlotIDs,C#【发布时间】:2017-06-0918:18:42【问题描述】:我有一定数量的外部设备,我们称它们为事物。每个事物都通过插入PCI插槽的PnP卡与计算机连接。每... 查看详情
flask蓝图理解(代码片段)
...之间的关系。蓝图代表着应用的一个个功能模块,能做到即插即用。我们先来建立一个蓝图fromflaskimportFlask,render_templatefromflaskimportBlueprintadmin=Blueprint(‘admin‘,__name__,static_folder=‘static‘,template_folder=‘template 查看详情
改进yolov7系列:最新结合即插即用ca(coordinateattention)注意力机制(适用于yolov5),cvpr2021顶会助力分类检测涨点!(代码片段)
💡统一使用YOLOv5、YOLOv7代码框架,结合不同模块来构建不同的YOLO目标检测模型。论文所提的Coordinate注意力很简单,可以灵活地插入到经典的移动网络中,而且几乎没有计算开销。大量实验表明,Coordinate注意... 查看详情
使用 SSH 的 PAM 模块
...】:是否有PAM模块可以通过SSH质询-响应对用户进行身份验证?我正在尝试编写一个PAM感知应用程序,该应用程序本质上具有与SSH连接相同的身份验证过程。我一直无法找到已经这样做的PAM模块(pam_ssh模块仍然是基于密码的),... 查看详情
即插即用开源在线客服系统——ppmessage
PPMessage是一个开源的在线客服平台。PPMessage能够帮助你在第一时间与你的客户建立联系,开发人员可以非常容易的将PPMessage集成到你的网站或者iOS、Android的应用中。PPMessage的前端后端都是开源的,后端全部基于Python,简洁高效... 查看详情
分享一个即插即用的私藏缓动动画js小算法
二、即插即用的缓动小算法原理如下:假设要从数值A变化到数值B,如果是线性运动,则每次移动距离是一样;如果是缓动,每次移动距离不一样。那如何才能不一样呢?很简单,按比例移动就可以。例如:每次移动剩余距离的... 查看详情