前言

设置一个复杂的密码,可以有效的提升系统的安全性。在Linux上有PAM(Pluggable Authentication Modules)里面有一个pam_cracklib.so来控制密码的复杂度。


配置文件路径

CentOS / RHEL / RedHat / Fedora : /etc/pam.d/system-auth


pam_cracklib.so

pam_cracklib.so中有很多参数可以选择,具体配置如下:

debug : 此选为记录Syslog日志。

type=safe : 输入新密码的时候给予的提示。

retry=N : 改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来。

difok=N : 默认值为8。这个参数设置允许的新、旧密码相同字符的个数。

difignore=N : 多少个字符的密码应收到difok将被忽略。默认为23

minlen=N : 新的最低可接受的大小密码。除了在新密码的字符数。此参数的默认值是9,它是一个老式的UNIX密码的字符相同类型的所有好,但可能过低,利用一个MD5的系统增加安全性。

dcredit=N : 限制新密码中至少有多少个数字。

ucredit=N : 限制新密码中至少有多少个大写字符。

lcredit=N : 限制新密码中至少有多少个小写字符。

ocredit=N : 限制新密码中至少有多少个其它的字符。此参数用于强制模块不提示用户的新密码,但以前使用的堆叠模块提供的密码之一。

dictpath=/data/dict :密码字典,这个是验证用户的密码是否是字典一部分的关键

cracklib密码强度检测过程:

1、首先检查密码是否是字典的一部分,如果不是,则进行下面的检查

2、密码强度检测过程

3、新密码是否旧密码的回文

4、新密码是否只是就密码改变了大小写

5、新密码是否和旧密码很相似

6、新密码是否太短

7、新密码的字符是否是旧密码字符的一个循环 例如旧密码:123 新密码:231

8、这个密码以前是否使用过。

例子

password required pam_cracklib.so difok=3 minlen=15 dcredit=2 ocredit=2

允许有3个新、旧密码相同字符的、最小长度15位 和至少包含2数字、至少包含2个特殊字符数

password required pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=8 enforce_for_root

最小长度为8和至少1位数字,1位大写字母,和另外1个字符的密码,此设置对root生效

Linux-密码复杂度限制的更多相关文章

  1. linux 密码复杂度设置

    /etc/login.defs文件,里面几个选项 PASS_MAX_DAYS 90 #密码最长过期天数 PASS_MIN_DAYS 80 #密码最小过期天数 PASS_MIN_LEN 10 #密码最小 ...

  2. Linux密码复杂度问题

    转:http://hunkz.blog.51cto.com/6157447/1630369

  3. Linux下修改密码复杂度

    在linux,设置密码复杂度的方法有几个1. 一个是在/etc/login.defs文件,里面几个选项PASS_MAX_DAYS 90 #密码最长过期天数PASS_MIN_DAYS 80 #密码最小过 ...

  4. linux加固安全之密码复杂度

    随着linux系统使用的普遍性,对linux用户及系统安全要求也随之提升,单纯从单位制度,用户安全意识上来规范,并不能杜绝弱口令,必须从技术上要求用户定时修改复杂的密码,从而提高用户和系统的安全性. ...

  5. Linux系统密码复杂度安全配置

    密码有效期控制 在文件/etc/login.defs中进行设置,如下参数 PASS_MAX_DAYS 180 #密码最长过期天数 PASS_MIN_DAYS 30 #密码最小过期天数 PASS_MIN ...

  6. linux(centos)下密码有效期和密码复杂度设置

    1.密码有效期 方法一: chage -l 用户名 查看用户的过期时间 chage -M 99999 用户名 用命令修改过期时间为永久 chage -M 90 用户名 设置密码有效期为90天 chag ...

  7. Oracle11g R2创建PASSWORD_VERIFY_FUNCTION对应密码复杂度验证函数步骤

    Oracle11g R2创建PASSWORD_VERIFY_FUNCTION对应密码复杂度验证函数步骤 运行测试环境:数据库服务器Oracle Linux 5.8 + Oracle 11g R2数据库 ...

  8. JavaScript密码复杂度

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  9. 检查密码复杂度的C#正则表达式

    在用户注册与修改.重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一. 而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字.小写或大写字母.特殊字符.字符数在8-30之 ...

  10. 使用单用户模式破解Linux密码

    使用单用户模式破解Linux密码 特别说明:在实际工作应用中,安装Linux操作系统必须设置装载口令,否则很容易被破解. 1.使用reboot指令重启Linux操作系统 2.在进入操作系统数秒时,单击 ...

随机推荐

  1. ESP8266-iot-简介1

    ESP8266简介

  2. html5 存储方式

    localstorage(永久保存)&&sessionstorage(重新打开浏览器会消失) sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在 ...

  3. docker搭建gitbook服务

    Gitbook Gitbook简介 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git ...

  4. How do I create a .pyc file?

    Python automatically compiles your script to compiled code, so called byte code, before running it. ...

  5. 去掉html标签方法

    public static string CleanHtml(string strHtml) { strHtml = Regex.Replace(strHtml, @"(\<scrip ...

  6. Cocos Creator 入门

    Cocos Createor 资源 略 场景 节点树 节点与组件 坐标系 脚本 组件声明,生命周期回调 var Component = cc.Class({ // 用于序列化,可省略 name: 's ...

  7. Django 使用第三方服务发送电子邮件

    在 Django 网站中使用 mailgun 的邮件收发服务. 1.在 mailgun 官网上注册个账号(免费,免费账号每个月有10000条收发邮件的服务,对我来说已经完全够用了),注册完成后界面如图 ...

  8. centos7 docker 安装 mysql5.7.24 导入12G的sql

    先在CentOS7里面安装docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker .通过 uname - ...

  9. mysql的innodb自增主键为什么不是连续的

    图1 图1中是表t原有的数据,这个时候我们执行show create table t会看到如下输出,如图二所示现在的自增值是2,也就是下一个不指定主键值的插入的数据的主键就是2 图2 Innodb引擎 ...

  10. python3入门之列表和元组

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 前面一张主要学习了Python的安装,以及第一个程序helloword的编写,以及简单的输入和输出函数,这章主要介绍序列,列表,元组 序列  这章 ...