Linux下的/etc/pam.d/system-auth配置文件参数说明

2023-05-16

文章目录

  • 一 配置文件内容
  • 二 各列参数说明
    • 1)第一列
    • 2)第二列
    • 3)第三列和第四列
  • 三 常用类说明

一 配置文件内容

首先打开配置文件/etc/pam.d/system-auth,我们会发现这个文件大致分成四列四部分内容。

[root@master ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

二 各列参数说明

1)第一列

其中第一列包括 auth、account、password、session四个模块。

参数释义
auth用来识别用户身份,比如提示用户输入密码,判断用户是否为root等
account检测账户是否允许访问。比如是否允许登录,是否达到最大用户数,root用户是否允许在这个终端登录等
password进行用户信息更新,一般指修改用户密码
session用来配置和管理用户会话,定义用户登陆前与退出后的操作

2)第二列

第二列包含 required requisite suffifient optinal 四个参数。

参数释义
required该模块失败后,也会执行完其余的模块,最后才会返回错误信息
requisite该模块必须success才能使认证继续进行,失败后直接返回错误信息,不执行后面的模块
sufficient如果失败则忽略;如果成功,并且之前的required模块没有发生故障,PAM会向应用程序返回通过的结果,不会再调用堆栈中其他模块
optional忽略结果,不管成功或者失败
include与处理结果无关,直接引用其他PAM模块的配置参数

3)第三列和第四列

具体使用的类以及参数设置。

三 常用类说明

1)密码过期,要求强制修改密码,且必须满足密码的复杂度。
此处使用 pam_cracklib.so 这个类。

password  required  pam_cracklib.so enforce_for_root retry=a ...

下面是我们常用的参数以及含义解释。

参数含义
enforce_for_root即使是root用户,也必须符合复杂度条件
retry=a提示a次用户密码错误输入
minlen=b密码长度不小于b个字符
ucredit=c至少有c个大写字母
lcredit=d至少有d个大写字母
dcredit=e至少有e个数字
ocredit=f至少有f个其他特殊字符
difok=g新密码中至少有g个字符和旧密码不同

注意,上面的cdef数字是小于0的数字时,表示要求最少需要几个。
当cdef数字是大于0的数字时,表示要求最多有几个。
比如lcredit=-3,表示最少要有3个小写字母。
比如dcredit=2,表示最多只能有2个数字。

由于这个类比较常用,且经常在实际生产环境中会对配置文件的密码复杂度进行修改,所以单独将其拿出来说明。

下面是其他一些常用的类以及对应的模块,了解即可。

类可用的模块含义说明
pam_unix.soauth提示用户输入密码,并与/etc/shadow对比,匹配则返回0
pam_unix.soaccount检查用户账号信息,账号可用,返回0
pam_unix.sopassword修改用户的密码,并将其更新到/etc/shadow文件中
类可用的模块含义说明
pam_shells.soauth如果用户想登陆系统,它的shell必须是 /etc/shells文件中的shell
类可用的模块含义说明
pam_deny.soauth用于拒绝访问
pam_deny.soaccount用于拒绝访问
pam_deny.sopassword用于拒绝访问
类可用的模块含义说明
pam_permit.soauth模块任何时候都返回成功
pam_permit.soaccount模块任何时候都返回成功
pam_permit.sopassword模块任何时候都返回成功
类可用的模块含义说明
pam_securetty.soauth当用户以root登录时,登陆的tty 必须在 /etc/securetty 中
类可用的模块含义说明
pam_listfile.soauth访问应用程序的控制开关
pam_listfile.soaccount访问应用程序的控制开关
pam_listfile.sopassword访问应用程序的控制开关
pam_listfile.sosession访问应用程序的控制开关
类可用的模块含义说明
pam_limits.sosession定义使用系统资源的上限,包括root用户。可以通过 /etc/security/limits.conf 设置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下的/etc/pam.d/system-auth配置文件参数说明 的相关文章

  • Linux - 查找特定文件之后和之前的文件

    我试图在我的计算机上查找特定文件创建前 1 小时和创建后 1 小时创建的文件 这是我尝试过的方法 find root newermt 2012 10 04 1800 and newermt 2012 10 04 2000 exec ls l
  • Bash:使用参数扩展查找和替换

    我想更换输入法 find string include 圆进度 38px 30px 4eb630 和输出 输出字符串 include 圆进度 38px 30px using find string pattern replacement s
  • 如何从存储在 char* 指针中的 name 调用 c 函数?

    我想通过函数的名称动态调用函数 例如 假设有以下函数和字符串 void do fork printf Fork called n char pFunc do fork 现在我需要打电话do fork 就在 pFunc 那么这可能吗 欢迎 C
  • “原子”系统调用是什么意思?

    我知道atomic通常在以下上 下文中使用竞争条件意思是类似一致性 and 根据多线程 多处理环境确定结果 没关系 但最近我读到了Linux中的原子系统调用 但不明白什么是atomic实际上这里的意思是 即how this 原子性 is 实
  • 如何在shell脚本中扩展相对路径

    我正在编写一个脚本来使用 bash 在 linux 2 6 上设置环境变量 因此该脚本包含如下命令 export SRC DIR export LIBPATH SRC DIR lib 问题是 当我尝试 echo LIBPATH 时 它显示
  • python os.path.exists() 对于存在的 nfs 挂载目录文件失败

    我基本上有一个用于网站的网络服务器和另一个仅存储文件的网络服务器 文件服务器通过安装其目录之一连接到主服务器 该网站运行 Django 所以我主要处理 python 不管怎样 我似乎遇到了一些问题 文件被报告为不存在 即使它们实际上存在 基
  • 错误:‘:’标记之前需要初始化程序

    我正在尝试编译一些 C 代码 可以在 Windows 上使用 Visual Studio 2012 进行编译 g 4 4 我有这段代码 const std string cnw restoreSession const std vector
  • C++向量数组运算符计算成本高?

    我一直都知道 C 的丰富抽象会带来一定的计算开销 但我的印象是 一旦应用了正确的编译器优化 这种开销几乎可以忽略不计 我很好奇这种开销到底有多大 所以我编写了一个简单的测试来确定这一点 该测试是一个模板化函数 它接受一个容器变量 为容器中的
  • 在詹金斯管道作业中将变量传递给bash脚本

    我有一个 Jenkins 管道作业 其中我使用名为 setup sh 的 bash 脚本配置我的环境 如下所示 bin bash export ARCH 1 echo architecture ARCH 在 Jenkins 管道脚本中 我使
  • 我应该如何从非 root Debian Linux 守护进程登录?

    我正在编写一个新的守护进程 它将托管在 Debian Linux 上 我发现 var log 具有仅 root 写入权限 因此我的守护进程无法在那里写入日志文件 但是 如果它写入那里 它似乎将获得自动日志轮转 并且也按照用户期望的方式工作
  • Linux GCC 上 的 C++ 编译问题

    尝试过谷歌并在这里搜索 但没有运气 我正在尝试将一些使用 Windows 的代码移植到 Linux 上 然后我得到了大量的编译错误 我所做的只是 include
  • python中的多服务器监控/自动重启

    我有 2 个服务器程序 必须使用 GNU Screen 启动 我想使用基于 Python 的程序来强化这些服务器 防止崩溃 该程序启动每个屏幕会话 然后监视服务器进程 如果服务器进程崩溃 我需要 python 代码来终止无关的屏幕会话并再次
  • Python select() 行为很奇怪

    我在理解 select select 的行为时遇到一些困难 请考虑以下 Python 程序 def str to hex s def dig n if n gt 9 return chr 65 10 n else return chr 48
  • 如何配置和采样英特尔进程内性能计数器

    简而言之 我试图在用户级基准测试进程中实现以下目标 伪代码 假设 x86 64 和 UNIX 系统 results for iteration 0 iteration lt num iterations iteration pctr sta
  • 如何在多行而不是单行输出上打印 Linux 组名称

    我尝试过 getent group 命令 id Gn user 和一些 sed 组合 但我认为我无法实现 因此向其他程序员伸出援手 我希望能够打印此 groups abc123输出 abc123 devops 构建测试设计 预期输出 gro
  • PHP中如何找出特定进程仍在运行

    我正在编写一个脚本 该脚本构建其他脚本的队列 并应该管理它们的启动 管理器脚本应该知道哪个子进程已经完成 因此它可以启动在队列中等待的其他脚本 我添加了一个 echo 获取每个子进程的进程 ID 所以我有我的子进程进程 ID 现在正在使用系
  • 使用 Python for Linux 模拟按键事件

    我正在编写一个脚本来自动运行特定模型 当模型失败时 它会等待用户输入 Enter 键 我可以检测到模型何时失败 但我无法使用 python 在 Linux 上 来模拟按键事件 Windows 有 SendKeys 库来执行此操作 但我想知道
  • 无法声明接口:资源繁忙

    我正在使用 USB4Java 低级版本 并且基本上是根据这段代码工作的here http www mets blog com java usb communication usb4java 我在 Ubuntu 中工作 遇到了有关权限的问题
  • 在Linux上如何找到当前目录的所有直接子目录?

    在Linux上如何找到当前目录的所有直接子目录 最简单的方法是通过编写来利用 shell 通配功能echo 如果你喜欢使用ls 例如要应用格式 排序选项 请使其ls d 解释 斜杠确保仅考虑目录 而不考虑文件 Option d 列出目录本身
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上

随机推荐

  • 学科前沿技术(高性能计算机)

    高性能计算机 xff1a 二十世纪八 九十年代是高性能计算机丰富多彩的时期 xff0c 各种体系结构的系统争奇斗妍 进入二十一世纪 xff0c 高性能计算机产业逐渐成熟 xff0c 用户面大大扩大 xff0c 技术也不断聚焦 工业界认为 x
  • 异常行为分析模型设计

    本文针对异常访问现状及问题进行简要描述 xff0c 在此基础上提出基于一元线性回归的最小二乘法异常访问分析模型 xff0c 通过该模型解决了异常访问中时间与访问间相关性问题 异常访问是指网络行为偏离正常范围的访问情况 异常访问包含多种场景
  • CSS 参考手册

    CSS 参考手册 CSS 参考手册 CSS 选择器 W3School 的 CSS 参考手册定期通过所有主流浏览器进行测试 CSS 属性 CSS 属性组 xff1a 动画背景边框和轮廓盒 xff08 框 xff09 颜色内容分页媒体定位可伸缩
  • C语言求n的阶乘(n!)

    从键盘输入一个数 xff0c 求出这个数的阶乘 xff0c 即 n 算法思想 首先要清楚阶乘定义 xff0c 所谓 n 的阶乘 xff0c 就是从 1 开始乘以比前一个数大 1 的数 xff0c 一直乘到 n xff0c 用公式表示就是 x
  • Oracle grant all privileges to user

    测试流程 xff1a 解锁HR用户 SQL gt alter user hr account unlock identified by hr User altered 创建一个test用户 SYS 64 orcl11g gt CREATE
  • 《自己动手写Docker》书摘之一: Linux Namespace

    Linux Namespace 介绍 我们经常听到说Docker 是一个使用了Linux Namespace 和 Cgroups 的虚拟化工具 xff0c 但是什么是Linux Namespace 它在Docker内是怎么被使用的 xff0
  • YYText

    特性 API 兼容 UILabel 和 UITextView支持高性能的异步排版和渲染扩展了 CoreText 的属性以支持更多文字效果支持 UIImage UIView CALayer 作为图文混排元素支持添加自定义样式的 可点击的文本高
  • 场景设计:用OOP的思想设计一个生产者消费者的模型

    具体模型如下 xff1a 有若干个消费者 xff0c 每个消费者都可以独立的执行消费任务 xff0c 偶尔会因为某种原因 xff0c 该消费者会不可用 xff0c 这个时候不能在给他分配消费任务了 此外还有大量待消费的生产品 xff0c 每
  • Ubuntu卡死在登录界面进不去的处理方法

    原因是显卡驱动坏了 xff0c 基本上本人的16 04版本动不动就坏一次 xff0c 已经习惯了 xff0c 18 04好像好不少 xff0c 也不知道是不是兼容问题 操作很简单 xff0c 就是卸载掉原来的驱动然后重装就OK了 1 在登录
  • 产品化的理解

    我对产品化的理解 产品化的时机是看业务的需要 xff0c 不管是对前景的落实 xff0c 还是项目转化成产品 xff0c 这些都不是技术人员能考虑的 xff0c 业务的发展和策划 xff0c 如何进行市场细化等如果都由技术人员考虑 xff0
  • 生产消费设计模式

    生产消费模式 在实际的软件开发过程中 xff0c 经常会碰到如下场景 xff1a 某个模块负责产生数据 xff0c 这些数据由另一个模块来负责处理 xff08 此处的模块是广义的 xff0c 可以是类 函数 线程 进程等 xff09 产生数
  • JS对象转insert语句

    function obj2Sql tablename obj var sqls 61 34 34 f 61 34 34 v 61 34 34 obj forEach o 61 gt f 61 34 34 v 61 34 34 for let
  • HTML5小试 双人贪吃蛇

    lt html gt lt head gt lt head gt lt body gt lt div style 61 34 float left 34 gt 当前速度1 xff1a lt button nclick 61 34 jianc
  • 九个Console命令,让js调试更简单

    九个Console命令 xff0c 让js调试更简单 一 显示信息的命令 lt DOCTYPE html gt lt html gt lt head gt lt title gt 常用console命令 lt title gt lt met
  • echarts自定义功能按钮图片 网络路径格式

    toolbox show true orient 39 vertical 39 x 39 left 39 top 39 20 39 feature myTool show true title 39 自定义扩展方法 39 icon 39 i
  • JAVA开发之基础业务环境

    1 用户登录 1 1 单点登录业务实现 单点登录 SingleSignOn xff0c SSO xff0c 就是通过用户的一次性鉴别登录 当用户在身份认证服务器上登录一次以后 xff0c 即可获得访问单点登录系统中其他关联系统和应用软件的权
  • 设置域用户密码复杂度

    需求 xff1a 设置域用户密码复杂度 环境 xff1a Windows Server 2016 DataCenter 创建组策略 xff0c 编辑 xff1a 路径 xff1a 计算机配置 Windows设置 安全设置 账户策略 密码策略
  • windows服务器设置开机启动的几种方式

    windows服务器设置开机启动的几种方式 xff1a 一 启动文件夹 将系统下可以直接双击就可以启动的可执行文件 xff0c 创建快捷方式放在此文件夹中 文件夹寻找方式 xff1a win 43 r 打开运行窗口 xff0c 输入shel
  • IDEA安装卸载插件

    介绍两种不常见的安装和卸载idea插件的方式 xff0c 具体步骤如下 xff1a 安装idea插件 通过命令行安装 1 查看Plugin ID 在https plugins jetbrains com 中搜索想要安装的插件 xff0c 如
  • Linux下的/etc/pam.d/system-auth配置文件参数说明

    文章目录 一 配置文件内容二 各列参数说明1 xff09 第一列2 xff09 第二列3 xff09 第三列和第四列 三 常用类说明 一 配置文件内容 首先打开配置文件 etc pam d system auth xff0c 我们会发现这个