CentOS设置密码复杂度及过期时间等

摘要:
当我们使用Linux系统设置密码时,经常会遇到这样的问题。系统提示您的密码太简单,或者您的密码是字典的一部分。系统分两部分控制密码:1cracklib 2登录定义声明:登录定义主要控制密码的有效性。密码的时间管理。登录。defs--shadowpasswords套件配置pam_ cracklib。控制密码复杂性的关键文档也是如此。Redhat专门开发了cracklib安装包来确定密码的复杂性。Minlen=N新密码的最小可接受长度。修改后,您可能会立即进行测试,发现上述设置无效。

我们在使用linux系统设置密码的时候,经常遇到这样的问题,系统提示:您的密码太简单,或者您的密码是字典的一部分。那么系统是如何实现对用户的密码的复杂度的检查的呢?
  系统对密码的控制是有两部分(我知道的)组成:
  1 cracklib
  2 login.defs
  声明:login.defs主要是控制密码的有效期。对密码进行时间管理。此处不细谈。
  login.defs --shadow password suite configuration
  pam_cracklib.so 才是控制密码复杂度的关键文件。
  redhat公司专门开发了cracklib这个安装包来判断密码的复杂度。
  可以rpm -ql cracklib查看。

密码的复杂度的判断是通过pam模块控制来实现的,具体的模块是pam_cracklibpam_cracklib 的参数介绍:

debug

    该选项使用模块将信息写入到日志(3)来指示组件的行为(这个选项不会记录密码信息到日志文件)。

type=XXX

    默认的操作是为模块,当请求密码时,该模块默认操作是使用以下提示:“新的UNIX密码:”和“重新输入密码UNIX”。此选项就是替换默认单词的UNIX。

retry=N

    提示用户最多N次会返回错误。默认值是1

difok=N

    此参数会改变默认新密码中必须有5个字符不同于旧密码中字符,此外,如果新密码中有一半字符不同于旧密码,那么就可以使用新密码。

difignore=N

    密码在少于多少个字符时,difok将被忽略,默认是23。

minlen=N
    新密码可接受的最小长度。

dcredit=N

    (N < 0) 新密码最小数字长度。

ucredit=N

    (N < 0) 新密码最小大写字母长度。

lcredit=N

    (N < 0) 新密码最小小写字母长度。

ocredit=N

    (N < 0) 新密码最小其他字符长度。

N>0表示密码最大的位数,一般均设置为N<0 表示密码最少的位数

use_authtok

    此参数用于强制不提示用户输入新的密码而由以前堆积的密码模块所提供。 

dictpath=/path/to/dict
  Path to the cracklib dictionaries.
  dictpath=/path/to/dict //注:密码字典,这个是验证用户的密码是否是字典一部分的关键。
  Path to the cracklib dictionaries.

例子:
在linux下设置密码复杂度办法:

(1)修改/etc/login.defs文件
PASS_MAX_DAYS   90  #密码最长过期天数
PASS_MIN_DAYS   80  #密码最小过期天数
PASS_MIN_LEN    10  #密码最小长度
PASS_WARN_AGE   7   #密码过期警告天数

(2)修改/etc/pam.d/system-auth文件
找到 password requisite pam_cracklib.so这么一行替换成如下:
password  requisite pam_cracklib.so retry=5  difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict


参数含义:
尝试次数:5  最少不同字符:3 最小密码长度:10  最少大写字母:1 最少小写字母:3 最少数字:3 密码字典:/usr/share/cracklib/pw_dict


注意:以上设置对root用户无效。修改后你可能会立即测试,会发现以上设置无效。你可以新建账户,并进入该账户。
useradd  test
passwd test

su - test
此时你发现设置起作用了。

免责声明:文章转载自《CentOS设置密码复杂度及过期时间等》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇flask-apscheduler重复执行两次函数WPF 如何使用字体图标?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】linux Centos 6.5 安装桌面环境GNOME

在某种场合之下,我们使用的Linux还是要选择安装桌面环境的,所以在这里介绍一下如何给没有安装桌面环境的系统安装桌面环境。 以Centos 6.5 为例演示一下如何安装桌面环境。 一、首先查看系统的运行级别以及是否安装了桌面环境 1、使用命令 runlevel 查看当前系统运行级别 ,如图所示 2、使用命令 yum grouplist | more  查看...

CentOS安装Redis 6.0.9

什么是Redis? Redis通常被称为数据结构服务器。这意味着Redis通过一组命令提供对可变数据结构的访问,这些命令是使用带有TCP套接字和简单协议的服务器-客户端模型发送的。因此,不同的进程可以以共享的方式查询和修改相同的数据结构。 在Redis中实现的数据结构具有一些特殊属性: 即使始终为它们提供服务并将它们修改到服务器内存中,Redis也会将...

String与byte[]字节数组中文转换乱码问题

  Sunshine的 String.getBytes()和new String()  在Java中,String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如 byte[] b_gbk = "中".getBytes("GBK"); byte[] b_utf8 = "中".get...

Centos 配置mailx使用外部smtp发送邮件

今天写定时脚本时,用到监控服务器是否备份成功,配置sentmail和postfix总是出问题,原本想只是接受个信息,没必要那么麻烦,直接配置mailx就能满足了,具体配置如下: 1、安装mailx yum install mailx -y  2、编辑发送的配置文件(修改/etc/mail.rc) vi /etc/mail.rc #qq.com set sm...

CentOS 7防火墙快速开放端口配置方法

一、CentOS 7快速开放端口: CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口: 开启端口 [root@centos7 ~]# firewall-cmd --zone=public -...

centos 7-8 安装 ms sql server 2019

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-overview?view=sql-server-ver15 ###下载安装 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com...