Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

时间:2022-10-19 17:32:06

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

方案一:直接忽略

很容易认为这儿是一个错误,其实可以直接忽略,重新输入密码

[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#

方案二:对密码规则进行设置

这一部分参考"Linux中国"的文章:如何设置 Linux 系统的密码策略

在基于 DEB 的系统中设置密码长度

默认情况下,所有的 Linux 操作系统要求用户密码长度最少 6 个字符。我强烈建议不要低于这个限制。并且不要使用你的真实名称、父母、配偶、孩子的名字,或者你的生日作为密码。即便是一个黑客新手,也可以很快地破解这类密码。一个好的密码必须是至少 6 个字符,并且包含数字、大写字母和特殊符号。

通常地,在基于 DEB 的操作系统中,密码和身份认证相关的配置文件被存储在 /etc/pam.d/ 目录中。

设置最小密码长度,编辑 /etc/pam.d/common-password 文件;

$ sudo nano /etc/pam.d/common-password

找到下面这行:

password [success=2 default=ignore] pam_unix.so obscure sha512

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

在末尾添加额外的文字:minlen=8。在这里我设置的最小密码长度为 8

password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

保存并关闭该文件。这样一来,用户现在不能设置小于 8 个字符的密码。

在基于 RPM 的系统中设置密码长度

在 RHEL、CentOS、Scientific Linux 7.x 系统中, 以 root 身份执行下面的命令来设置密码长度。

# authconfig --passminlen=8 --update

查看最小密码长度,执行:

# grep "^minlen" /etc/security/pwquality.conf

输出样例:

minlen = 8

在 RHEL、CentOS、Scientific Linux 6.x 系统中,编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

如上设置中,最小密码长度是 8 个字符。

在基于 DEB 的系统中设置密码复杂度

此设置会强制要求密码中应该包含多少类型,比如大写字母、小写字母和其他字符。

首先,用下面命令安装密码质量检测库:

$ sudo apt-get install libpam-pwquality

之后,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

为了设置密码中至少有一个大写字母,则在下面这行的末尾添加文字 ucredit=-1

password requisite pam_pwquality.so retry=3 ucredit=-1

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

设置密码中至少有一个小写字母,如下所示。

password requisite pam_pwquality.so retry=3 dcredit=-1

设置密码中至少含有其他字符,如下所示。

password requisite pam_pwquality.so retry=3 ocredit=-1

正如你在上面样例中看到的一样,我们设置了密码中至少含有一个大写字母、一个小写字母和一个特殊字符。你可以设置被最大允许的任意数量的大写字母、小写字母和特殊字符。

你还可以设置密码中被允许的字符类的最大或最小数量。

下面的例子展示了设置一个新密码中被要求的字符类的最小数量:

password requisite pam_pwquality.so retry=3 minclass=2

在基于 RPM 的系统中设置密码复杂度

在 RHEL 7.x / CentOS 7.x / Scientific Linux 7.x 中:

设置密码中至少有一个小写字母,执行:

# authconfig --enablereqlower --update

查看该设置,执行:

# grep "^lcredit" /etc/security/pwquality.conf

输出样例:

lcredit = -1

类似地,使用以下命令去设置密码中至少有一个大写字母:

# authconfig --enablerequpper --update

查看该设置:

# grep "^ucredit" /etc/security/pwquality.conf

输出样例:

ucredit = -1

设置密码中至少有一个数字,执行:

# authconfig --enablereqdigit --update

查看该设置,执行:

# grep "^dcredit" /etc/security/pwquality.conf

输出样例:

dcredit = -1

设置密码中至少含有一个其他字符,执行:

# authconfig --enablereqother --update

查看该设置,执行:

# grep "^ocredit" /etc/security/pwquality.conf

输出样例:

ocredit = -1

RHEL 6.x / CentOS 6.x / Scientific Linux 6.x systems 中,以 root 身份编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并且在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

如上设置中,密码必须要至少包含 8 个字符。另外,密码必须至少包含一个大写字母、一个小写字母、一个数字和一个其他字符。

在基于 DEB 的系统中设置密码有效期

现在,我们将要设置下面的策略。

  1. 密码被使用的最长天数。
  2. 密码更改允许的最小间隔天数。
  3. 密码到期之前发出警告的天数。

设置这些策略,编辑:

$ sudo nano /etc/login.defs

在你的每个需求后设置值。

PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

正如你在上面样例中看到的一样,用户应该每 100 天修改一次密码,并且密码到期之前的 7 天开始出现警告信息。

请注意,这些设置将会在新创建的用户中有效。

为已存在的用户设置修改密码的最大间隔天数,你必须要运行下面的命令:

$ sudo chage -M <days> <username>

设置修改密码的最小间隔天数,执行:

$ sudo chage -m <days> <username>

设置密码到期之前的警告,执行:

$ sudo chage -W <days> <username>

显示已存在用户的密码,执行:

$ sudo chage -l sk

这里,sk 是我的用户名。

输出样例:

Last password change : Feb 24, 2017
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

正如你在上面看到的输出一样,该密码是无限期的。

修改已存在用户的密码有效期,

$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk

上面的命令将会设置用户 sk 的密码期限是 24/06/2018。并且修改密码的最小间隔时间为 5 天,最大间隔时间为 90 天。用户账号将会在 10 天后被自动锁定,而且在到期之前的 10 天前显示警告信息。

在基于 RPM 的系统中设置密码效期

这点和基于 DEB 的系统是相同的。

在基于 DEB 的系统中禁止使用近期使用过的密码

你可以限制用户去设置一个已经使用过的密码。通俗的讲,就是说用户不能再次使用相同的密码。

为设置这一点,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

找到下面这行并且在末尾添加文字 remember=5

password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

上面的策略将会阻止用户去使用最近使用过的 5 个密码。

在基于 RPM 的系统中禁止使用近期使用过的密码

这点对于 RHEL 6.x 和 RHEL 7.x 和它们的衍生系统 CentOS、Scientific Linux 是相同的。

以 root 身份编辑 /etc/pam.d/system-auth 文件,

# vi /etc/pam.d/system-auth

找到下面这行,并且在末尾添加文字 remember=5

password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

现在你了解了 Linux 中的密码策略,以及如何在基于 DEB 和 RPM 的系统中设置不同的密码策略。

就这样,我很快会在这里发表另外一天有趣而且有用的文章。在此之前请保持关注。如果您觉得本教程对你有帮助,请在您的社交,专业网络上分享并支持我们。

Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化的更多相关文章

  1. MySQL 设置root密码报错:mysqladmin&colon; connect to server at &&num;39&semi;localhost&&num;39&semi; failed

    MySQL 设置root密码报错:mysqladmin: connect to server at 'localhost' failed 1.安装完MySQL设置root密码报错如下 [root@vm ...

  2. mysql5&period;7设置简单密码报错ERROR 1819 &lpar;HY000&rpar;&colon; Your password does not satisfy the current policy requirements

    注:本文来源于<  mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy r ...

  3. mysql5&period;7&period;18&period;1修改用户密码报错ERROR 1054 &lpar;42S22&rpar;&colon; Unknown column &&num;39&semi;password&&num;39&semi; in &&num;39&semi;field list&&num;39&semi;解决办法

    本意向修改一个用户的密码,网上搜到的命令为如下 mysql> update user set password=password(“新密码”) where user=”用户名”; 执行后报错 E ...

  4. SQL c&num; 程序报错:未在本地计算机上注册&OpenCurlyDoubleQuote;Microsoft&period;Jet&period;OLEDB&period;4&period;0”提供程序

    报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序.System.Data 需要注意的问题和解决方法: 1.Microsoft.Jet.OLEDB.4.0不要写成Mi ...

  5. Linux QtCreator 编译报错:No rule to make target &&num;39&semi;&period;&period;&period;&sol;&ast;&ast;&ast;&&num;39&semi; needed by &&num;39&semi;&ast;&ast;&ast;&period;o&&num;39&semi;&period;stop

    Linux QtCreator 编译报错:No rule to make target 'mainwindow.cpp'  needed by  'mainwindow.o'.stop [1]解决方案 ...

  6. 【jvm】linux 调用 jmap 报错Permission denied

    linux 调用 jmap  报错Permission denied 解决方案: 分别对java安装目录,java的bin目录以及jmap命令设置权限 chmod jdk1..0_79 chmod b ...

  7. Linux常见英文报错中文翻译&lpar;菜鸟必知&rpar;

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  8. Linux常见英文报错中文翻译

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  9. linux系统修改用户密码报错

    版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址:https://www.cnblogs.com/wannengachao/p/12069113.html 1.设置新 ...

随机推荐

  1. 多态、类库、委托、is和as运算符、泛型集合

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...

  2. mysql查询结果添加序列号

    第一种方法: select   (@i:=@i+1)   as   i,table_name.*   from   table_name,(select   @i:=0)   as   it 第二种方 ...

  3. apache配置优化

    最近参加了很多面试,多多少少有点小感悟,可以说观念转变了不少,特别是对于作为一个开发人员的定位,原来只是认为开发人员就只需要写好代码就行了,所以只需要有数据结构,算法,设计模式,重构方面的知识就行了. ...

  4. 1709&period; Penguin-Avia(并查集)

    1709 简单题 并查集找下就行 #include <iostream> #include<cstdio> #include<cstring> #include&l ...

  5. word2010中莫名出现灰色中括号解决方案

    灰色中括号[]是文中书签,解决方案: word 文件-选项-高级,在“显示文档内容”部分,去掉“显示书签”前面的勾选.

  6. 关于Ionic的安装

    Ionic是一个前端的框架,帮助开发者使用HTML5, CSS3和JavaScript做出原生应用. http://ionicframework.com/getting-started/ 这里介绍了如 ...

  7. C&num;Css&sol;Js静态文件压缩--Yui&period;Compressor&period;Net

    一.Asp.Net 自带静态文件压缩工具包 Microsoft.AspNet.Web.Optimization http://www.nuget.org/packages/Microsoft.AspN ...

  8. 针对PCB飞针测试快速有效的技巧

    测试探针通过多路传输(multiplexing)系统连接到驱动器(信号发生器.电源供应等)和传感器(数字万用表.频率计数器等)来测试UUT上的元件.当一个元件正在测试的时候,UUT上的其它元件通过探针 ...

  9. Spark源码剖析(九):TaskScheduler原理与源码剖析

    接着上期内核源码(六)的最后,DAGSchedule会将每个Job划分一系列stage,然后为每个stage创建一批task(数量与partition数量相同),并计算其运行的最佳位置,最后针对这一批 ...

  10. MIT-线性代数笔记(1-6)

    学习目录 第 01 讲 行图像和列图像 第 02 讲 矩阵消元 第 03 讲 矩阵的乘法和逆矩阵 第 04 讲 矩阵的LU 分解 第 05 讲 转置.置换和空间 第 06 讲 列空间和零空间 第 07 ...