首页 > 其他分享 >简介PAM的认证过程及各PAM文件的作用

简介PAM的认证过程及各PAM文件的作用

时间:2023-12-20 16:37:14浏览次数:28  
标签:limits 简介 用户 PAM 用于 认证 pam

MySQL用户运行MySQL服务时最大能打开的文件数,是由limits.conf文件和pam_limits.so模块共同决定的。pam_limits.so模块是一个PAM(插入式认证模块)的组件,它可以在用户登录时设置一些资源限制,例如打开文件数、内存使用量、进程数等。limits.conf文件是pam_limits.so模块的配置文件,它定义了不同用户或用户组的资源限制。

MySQL服务能打开的文件数与limits.conf是有关联的,但不是唯一的因素。除了limits.conf文件,还有其他几个参数会影响mysql服务能打开的文件数,例如open-files-limit、innodb-open-files、table-open-cache、table-definition-cache等。

当MySQL用户启动MySQL服务时,它会先通过PAM进行认证,然后pam_limits.so模块会读取limits.conf文件中的配置,根据MySQL用户的身份,设置相应的资源限制,包括打开文件数。这样,MySQL服务就会受到limits.conf文件的影响,不能超过指定的打开文件数。如果要修改这个限制,可以编辑limits.conf文件,或者在MySQL的配置文件中设置open-files-limit参数。

MySQL运行是开机自启的,那么它是通过系统服务的方式启动的。系统服务的启动方式有多种,例如systemd、init.d、upstart等。不同的启动方式可能会有不同的PAM配置文件,例如systemd的PAM配置文件是/etc/pam.d/systemd-user,init.d的PAM配置文件是/etc/pam.d/init。这些配置文件会指定哪些PAM模块需要加载,以及如何加载它们。一般来说,这些配置文件会包含pam_limits.so模块,从而使得limits.conf文件的设置生效。

MySQL运行用户是mysql用户,那么它是通过mysql用户的身份进行PAM认证的。PAM认证的过程是这样的:当mysql用户启动MySQL服务时,它会先调用PAM库函数,例如pam_start(),pam_authenticate(),pam_acct_mgmt()等。这些函数会根据PAM配置文件,加载相应的PAM模块,例如pam_unix.so,pam_ldap.so,pam_limits.so等。这些模块会对mysql用户进行身份验证,授权,资源限制等操作。如果验证成功,mysql用户就可以运行MySQL服务了。

pam.d 文件夹下的文件是用来配置和管理用户认证的,每个文件对应一个服务或应用程序,例如login, sshd, sudo等。这些文件的内容都遵循一定的格式,分为四列,分别是模块类型,控制标记,模块路径和模块参数。模块类型表示不同的认证任务,例如auth, account, session, password等。控制标记表示如何处理模块的返回值,例如required, requisite, sufficient, optional等。模块路径表示要调用的PAM模块的位置,例如pam_unix.so, pam_limits.so等。模块参数表示传递给模块的选项,例如debug, nullok, minlen等。

简单介绍一下各文件的用途:

  • chfn: 用于修改用户的finger信息,例如姓名,电话,地址等。
  • chsh: 用于修改用户的登录shell。
  • config-util: 用于配置一些系统工具,例如authconfig, system-config-authentication等。
  • crond: 用于控制cron服务的用户认证,例如定时任务的执行。
  • fingerprint-auth: 用于支持指纹识别的用户认证。
  • fingerprint-auth-ac: 用于支持指纹识别的用户认证,与fingerprint-auth类似,但是会检查用户是否被锁定。
  • login: 用于控制用户的登录认证,例如密码,shell,资源限制等。
  • other: 用于控制一些没有专门的PAM配置文件的服务或应用程序的用户认证。
  • passwd: 用于控制用户的密码修改,例如密码强度,过期时间等。
  • password-auth: 用于支持多种密码认证方式的用户认证,例如本地,LDAP,Kerberos等。
  • password-auth-ac: 用于支持多种密码认证方式的用户认证,与password-auth类似,但是会检查用户是否被锁定。
  • polkit-1: 用于控制PolicyKit的用户认证,PolicyKit是一种框架,用于授权非特权用户执行特权操作。
  • postlogin: 用于控制用户登录后的会话管理,例如显示登录信息,记录登录日志等。
  • postlogin-ac: 用于控制用户登录后的会话管理,与postlogin类似,但是会检查用户是否被锁定。
  • remote: 用于控制远程用户的登录认证,例如rlogin, rsh, rcp等。
  • runuser: 用于控制runuser命令的用户认证,runuser命令用于切换用户身份,但不需要输入密码。
  • runuser-l: 用于控制runuser -l命令的用户认证,runuser -l命令用于切换用户身份,并启动一个新的登录shell。
  • smartcard-auth: 用于支持智能卡的用户认证。
  • smartcard-auth-ac: 用于支持智能卡的用户认证,与smartcard-auth类似,但是会检查用户是否被锁定。
  • smtp: 用于控制邮件发送的用户认证,例如sendmail, postfix等。
  • smtp.postfix: 用于控制postfix邮件服务器的用户认证。
  • sshd: 用于控制ssh服务的用户认证,例如密码,公钥,指纹等。
  • su: 用于控制su命令的用户认证,su命令用于切换用户身份,通常需要输入密码。
  • su-l: 用于控制su -l命令的用户认证,su -l命令用于切换用户身份,并启动一个新的登录shell。
  • sudo: 用于控制sudo命令的用户认证,sudo命令用于以另一个用户的身份执行命令,通常需要输入密码。
  • sudo-i: 用于控制sudo -i命令的用户认证,sudo -i命令用于以另一个用户的身份执行命令,并启动一个新的登录shell。
  • systemd-user: 用于控制systemd用户服务的用户认证,systemd是一种系统和服务管理器。
  • system-auth: 用于支持多种系统认证方式的用户认证,例如本地,LDAP,Kerberos等。
  • system-auth-ac: 用于支持多种系统认证方式的用户认证,与system-auth类似,但是会检查用户是否被锁定。
  • vlock: 用于控制vlock命令的用户认证,vlock命令用于锁定一个或多个终端。
  • vmtoolsd: 用于控制VMware Tools守护进程的用户认证,VMware Tools是一组增强虚拟机性能和管理的工具。

标签:limits,简介,用户,PAM,用于,认证,pam
From: https://www.cnblogs.com/wanghongwei-dev/p/17916766.html

相关文章

  • spring-cloud 微服务架构所用到的技术 简介
    https://www.bilibili.com/video/BV18E411x7eThttps://blog.csdn.net/u011863024/article/details/114298270https://blog.csdn.net/u011863024/article/details/114298282https://blog.csdn.net/u011863024/article/details/1142982881、注册中心注册中心这一概念在面向服......
  • FDA认证是什么
    FDA是美国食品和药物管理局(FoodandDrugAdministration)的简称,是美国政府在健康与人类服务部(DHHS)和公共卫生部(PHS)中设立的执行机构之一。作为一家科学管理机构,FDA的职责是确保美国本国生产或进口的食品、化妆品、药物、生物制剂、医疗设备和放射产品的安全。它是最......
  • 【Spring教程21】Spring框架实战:Spring事务简介、AOP事务管理、代码示例全面详解
    欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及IDEA配置Maven环境》,本文的上一篇为《AOP(面对切面编程)知识总结》1相关概念介绍事务作用:在数据层保障一系列的数据库操......
  • 多因子认证
    多因子认证是在单因子认证不足以保证安全性时使用的方法,通常会引入多种方式对用户身份进行验证。身份验证方法可以基于知识的认证,即密码;也可以基于物品的认证,例如硬件密钥;也可以是基于特征的认证,例如包含指纹在内的生物特征等。具体来说,目前常用的生物特征有:指纹、人脸、虹膜、静......
  • Logback简介与配置详解
    在开发和维护SpringBoot应用程序时,一个强大而灵活的日志框架是至关重要的。SpringBoot默认集成了Logback,一个高性能的Java日志框架。本文将介绍如何配置Logback以满足你的日志记录需求。Logback简介官方网址:https://logback.qos.ch/Logback是一款为Java应用程序设计的日志框......
  • opencv图像处理机器学习真实项目教程(python实现)1计算机视觉简介
    1计算机视觉简介欢迎来到计算机视觉的世界。本书将带您踏上令人兴奋且快速发展的计算机视觉和图像处理世界的旅程。本书首先介绍计算机视觉和OpenCV库。然后,我们将继续介绍本课程的基本库和所需的环境设置。主要内容:计算机视觉简介计算机视觉的应用PythonOpenCVOpenCV......
  • Gowin FPGA Designer 简介
    高云FPGADesigner是高云FPGA开发的IDE软件,软件包不大,安装包241M,解压Gowin_V1.9.8.07_vin压缩包,后点击文件夹的exe安装包,直接一直按下一步,完成软件的安装,安装后在桌面会有如下图标  双击打开软件,进入主界面,如下  软件的使用,请参考软件使用视频或者在高云官......
  • python 之 LDAP 用户统一认证登录
    pipinstallldap3#环境安装fromldap3importServer,Connection,SUBTREEldap_host='xx.xx.x.x'#ldap服务器地址ldap_port=389#默认389ldap_admin_user='xx'#ldap管理员账户用户名ldap_admin_password='xxx'#ldap管理员账户密码ldap_base_search......
  • zookeeper添加用户密码认证
    1、zookeeper已部署并启动 2、连接进ZK[root@localhost~]#zkCli.sh 3、权限设置#查询默认权限#可以看到默认是world:anyone就相当于无权限访问getAcl/#添加一个账号密码,账号密码可自定义addauthdigestzkadmin:zk@123#给/根目录设置权限,也可以给其他......
  • IDE之VS:Visual Studio的简介(包括 VS2013、VS2015、VS2017、VS2019、VS2022)、安装、
    原文链接:https://blog.csdn.net/qq_41185868/article/details/81052119最近开始使用vs2019,应该是最新的版本。之前都是vs2015,感觉19更智能,兼容性更好,速度也更快。详细了解下这几个版本。1、简介:MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品,功能完备的I......