Linux登录访问限制

Linux系统下,用户密码的有效期可以通过编辑/etc/login.defs文件控制;密码复杂度规则设定需要通过/etc/pam.d/system-auth文件控制;登录失败次数限制通常由/etc/pam.d/login文件限制,可使用pam_tally2模块进行设置。

        

Linux系统下的用户密码的有效期

可以修改密码可以通过login.defs文件控制。设置密码过期期限(默认情况下,用户的密码永不过期。)编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

# 查看默认配置
[root@iZm5e7avacv1htxtp7qbdyZ etc]# cat login.defs | grep PASS*
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7# 修改参数
[root@iZm5e7avacv1htxtp7qbdyZ etc]# sed -i -r 's/(PASS_MAX_DAYS)\s+[0-9]+/\1 90/' login.defs
[root@iZm5e7avacv1htxtp7qbdyZ etc]# sed -i -r 's/(PASS_MIN_LEN)\s+[0-9]+/\1 8/' login.defs# 检查修改后的结果
[root@iZm5e7avacv1htxtp7qbdyZ etc]# cat login.defs | grep PASS*

参数说明:

  • PASS_MAX_DAYS:密码可以使用的最多天数

  • PASS_MIN_DAYS:密码更改之间允许的最小天数

  • PASS_MIN_LEN:可接受的最小密码长度

  • PASS_WARN_AGE:密码过期前发出警告的天数

linux 用户密码复杂度

用户密码复杂度规则设定,需要通过/etc/pam.d/system-auth文件去控制(针对的是普通用户修改密码会生效,root用户无效),centos6中默认是通过pam_cracklib.so模块控制,(在CentOS 7上实现密码复杂度策略设置,主要是使用PAM pwquality模块完成):

相关参数说明:

  • retry=3 定义登录/修改密码失败时,可以重试的次数;

  • type=xxx 当添加/修改密码时,系统给出的缺省提示符是什么,用来修改缺省的密码提示文本。默认是不修改的,如上例。

  • minlen=8 定义用户密码的最小长度为8位

  • ucredit=-1 定义用户密码中最少有2个大写字母 (数字为负数,表示至少有多少个大写字母;数字为正数,表示至多有多少个大写字母;下面同理)

  • lcredit=-1 定义用户密码中最少有4个小写字母

  • dcredit=-1 定义用户密码中最少有1个数字

  • ocredit=-1 定义用户密码中最少有1个特殊字符(除数字、字母之外)

  • remember=3 修改用户密码时最近5次用过的旧密码就不能重用了

  • difok=n 此选项用来规定新密码中必需有n个字符与旧密码不同。

  • minclass=n 此选项用来规定新密码中的字符类别的最小数目,字符一般有四种类别:数字、大写字母、小写字母,以及特殊字符。

linux 设置登录失败5次,锁定时间为5分钟

限制登录通常由/etc/pam.d/login文件限制的,可直接在#%PAM-1.0下,直接添加一行

# 不限制root用户
auth required pam_tally2.so deny=3 unlock_time=5
# 限制root用户
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
  1. 本文使用的是 pam_tally2 模块,如果不支持 pam_tally2 模块可以使用 pam_tally 模块,不同的模块设置不同,请参考模块使用方法进行设置

  2. 也可以直接在/etc/pam.d/system-auth中设

    auth required pam_tally2.so onerr=fail unlock_time=1800 no_magic_root
    account required pam_tally2.so deny=5 unlock_time=1800 no_magic_root even_deny_root_account per_user reset

    参数说明:

  • auth: 表示这是认证阶段的规则。

  • required: 表示此模块是必需的,如果它失败,则认证失败。

  • pam_tally.so: 是PAM模块,用于跟踪用户登录失败的次数。

  • onerr=fail: 如果pam_tally.so模块遇到错误,则认证失败。

  • Unlock_time=1800: 指定用户账户在被锁定后多长时间(以秒为单位)自动解锁。这里是1800秒,即30分钟-

  • no_magic_root: 禁止root用户使用特殊权限来绕过登录失败次数的限制。

  • account: 表示这是账户管理阶段的规则。

  • deny=5: 指定在连续登录失败5次后,用户账户将被锁定。

  • even_deny_root_account: 即使对root用户也执行账户锁定策略。

  • per_user: 锁定策略是基于每个用户的,而不是全局的。

  • reset: 当用户成功登录后,重置登录失败计数器。

  • 建议不要限制root用户,因为pam_tally没有解锁功能,哪怕配置了unlock_time也是不生效的

  1. 使用pam_tally2 -r -u username 手动解锁用户

  2. 使用pam_tally2 –u username查看用户错误登录次数

  • 更多相关参数请参考官网

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

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

相关文章

代码随想录-算法训练营day09【字符串02:KMP、重复的子字符串、字符串总结、双指针回顾】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第四章 字符串part02 今日任务 ●28. 实现 strStr() ●459.重复的子字符串 ●字符串总结 ●双指针回顾 详细布置 28. 实现 strStr() (本题可以跳过)因为KMP算法很难,大家别奢求 一…

爬虫 | 网易新闻热点数据的获取与保存

Hi,大家好,我是半亩花海。本项目是一个简单的网络爬虫,用于从网易新闻的热点新闻列表中提取标题和对应的链接,并将提取到的数据保存到一个 CSV 文件中。 目录 一、技术栈 二、功能说明 三、注意事项 四、代码解析 1. 导入所需…

Playwright安装和基本使用(ui/web自动化)

1.简介 Playwright是2021年微软开源的一个项目「playwright-python」。针对 Python 语言的纯自动化工具,它可以通过单个API自动执行 Chromium,Firefox 和 WebKit 浏览器,同时支持以无头模式、有头模式运行。 Playwright(Git&…

springboot汽车企业公司网站的系统设计ssm-java

框架:SSM/springboot都有 jdk版本:1.8 及以上 ide工具:IDEA 或者eclipse 数据库: mysql 编程语言: java 前端:layuibootstrapjsp 详细技术:HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat 开发工具 IntelliJ IDEA: 一…

【学习】软件测试人员使用Loadrunner进行性能测试的优势

在软件测试领域,性能测试是一项至关重要的环节,它关乎到软件系统的稳定性和用户体验。而在这其中,Loadrunner作为一款久经考验的性能测试工具,凭借其独特的优势,成为了众多企业和开发者眼中的“得力助手”。 首先&…

1036: 寻找整数序列的主元素

解法&#xff1a; #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() {int n;cin >> n;vector<int> arr(n);vector<int> tong(1000);for (auto& x : arr) {cin >> x;tong[x];}int pma…

Guava里一些比较常用的工具

随着java版本的更新提供了越来越多的语法和工具来简化日常开发&#xff0c;但是我们一般用的比较早的版本所以体验不到。这时就用到了guava这个包。guava提供了很多方便的工具方法&#xff0c;solar框架就依赖了guava的16.0.1版本&#xff0c;这里稍微介绍下。 一、集合工具类…

vue3 uniapp微信登录

根据最新的微信小程序官方的规定&#xff0c;uniapp中的uni.getUserInfo方法不再返回用户头像和昵称、以及手机号 首先&#xff0c;需获取appID&#xff0c;appSecret&#xff0c;如下图 先调用uni.getUserInfo方法获取code&#xff0c;然后调用后台的api&#xff0c;传入code&…

大模型项目整体规划、技术选型和案例分析经验分享

1 项目整体规划 1.1 明确场景 toB or toC&#xff08;面向企业还是面向消费者&#xff09; toB&#xff08;面向企业&#xff09;&#xff1a;指的是产品或服务主要面向其他企业或组织。这类产品通常需要解决特定的商业问题&#xff0c;强调效率和集成性&#xff0c;并且可能需…

什么是 MVVM、mvc 模型

mvc模型 MVC: MVC 即 model-view-controller&#xff08;模型-视图-控制器)是项目的一种分层架构思想&#xff0c;它把复杂的业务逻辑&#xff0c; 抽离为职能单一的小模块&#xff0c;每个模块看似相互独立&#xff0c;其实又各自有相互依赖关系。它的好处是&#xff1a;保证了…

如何选择最好的数据恢复软件?最佳免费数据恢复软件集

丢失或删除文件并不意味着它已从您的设备中永久删除。 下次您不小心删除或丢失文件时&#xff0c;请不要惊慌&#xff0c;丢失的文件仍然可以恢复&#xff0c;但前提是您迅速采取行动。 驱动器具有用于存储文件的目录。删除数据需要很长时间&#xff0c;因此您删除的任何文件都…

03-1_Qt 5.9 C++开发指南_番外1_QWidget项目默认代码解析(Qt对象模型:对象树与元对象系统;初始化列表用于调用父类有参构造和初始化)

我们在创建Qt Widgets Application的时候&#xff0c;会默认生成一些代码&#xff0c;本篇主要是对其涉及到的内容进行解析。早期已经在此博文中进行介绍&#xff0c;可以结合理解&#xff1a;QT从入门到实战x篇_02_创建第一个Qt工程 文章目录 1. 创建Qt Widgets Application程…

BetterZip解锁文件处理新境界

在数字化时代的浪潮中&#xff0c;文件处理成为了我们日常生活和工作中不可或缺的一部分。压缩软件&#xff0c;作为文件处理的得力助手&#xff0c;以其出色的压缩性能、便捷的操作体验以及强大的文件管理能力&#xff0c;赢得了广大用户的青睐。在众多压缩软件中&#xff0c;…

npm vs. pnpm vs. Yarn: 三者之间的区别与比较

在现代前端开发中&#xff0c;包管理工具是必不可少的一环。npm、pnpm和Yarn是三个常用的包管理工具&#xff0c;它们各有特点&#xff0c;适用于不同的场景。本文将深入讨论这三者的基本概念、特点、优势和劣势&#xff0c;并对比分析它们之间的主要区别&#xff0c;包括功能、…

热词解析| 制造企业如何跟上新质生产力建设步伐【触想智能】

回顾3月份的网络热词&#xff0c;「新质生产力」在各大平台霸榜刷屏&#xff0c;并且受到两会政府工作报告的频繁聚焦。究竟何为新质生产力?以及&#xff0c;传统制造企业如何加速融入这场火热的现代化产业革新浪潮之中? 图源| 纪录片《加快形成新质生产力》 1、什么是新质生…

2、ipex-llm(原bigdl-llm)应用聊天

ipex-llm环境配置及模型下载 1、加载模型 大量流行的开源PyTorch大语言模型都可以使用Huggingface Transformers API&#xff08;例如AutoModel, AutoModelForCasualLM 等&#xff09;来加载。对于这类模型&#xff0c;ipex-llm提供了一套API来支持&#xff0c;接下来展示一下…

TypeScript学习笔记5-类型别名

在 JavaScript 中&#xff0c;类型别名是一种自定义类型的方式&#xff0c;通过关键字 type 来创建。它允许你为现有的类型提供一个更具描述性的名称&#xff0c;从而增强代码的可读性和可维护性。类型别名通常与联合类型&#xff08;Union Types&#xff09;或交叉类型&#x…

AutoGen - Build Powerful AI Agents with ChatGPT/GPT-4

原文:AutoGen - Build Powerful AI Agents with ChatGPT/GPT-4 | MLExpert - Crush Your Machine Learning interview In this tutorial, well explore AutoGen1, a Microsoft library that lets you create LLM applications with agents. These agents can communicate and …

PostgreSQL入门到实战-第二十四弹

PostgreSQL入门到实战 PostgreSQL中表连接操作(八)官网地址PostgreSQL概述PostgreSQL中CROSS JOIN命令理论PostgreSQL中CROSS JOIN命令实战更新计划 PostgreSQL中表连接操作(八) 使用PostgreSQL CROSS JOIN从连接的表中生成行的笛卡尔乘积。 官网地址 声明: 由于操作系统, 版…

git commit --amend用法

一、git commit --amend 修改提交信息&#xff1a;您可以使用 git commit --amend 命令来修改最新提交的提交信息。执行该命令后&#xff0c;Git 将会打开文本编辑器&#xff08;通常是的默认文本编辑器&#xff09;&#xff0c;以便编辑提交信息。完成编辑后保存并关闭编辑器…