/etc/login.defs文件,里面几个选项
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 80 #密码最小过期天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数 修改/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 pam_cracklib.so 才是控制密码复杂度的关键文件
/lib/security/pam_cracklib.so
# rpm -qa | grep cracklib
cracklib-2.8.9-3.1 \\检查软件是否安装
cracklib-dicts-2.8.9-3.1 \\密码字典文件 声明:login.defs主要是控制密码的有效期。对密码进行时间管理 密码的复杂度的判断是通过pam模块控制来实现的,具体的模块是pam_cracklibpam_cracklib 的参数介绍:
# man pam_cracklib \\手册分析该模块的作用 可用参数说明
debug
此选项使模块的信息写入到syslog(3),显示模块的行为(此选项不写密码信息到日志文件)。 type=XXX
默认的动作是模块使用以下提示时,要求口令:“新的UNIX密码:“和”重新输入UNIX密码:“。默认的Word UNIX可以被替换为这个选项。 retry=N
改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来。 difok=N
默认值为10。这个参数设置允许的新、旧密码相同字符的个数。不过,如果新密码中1/2的字符和旧密码不同,则新密码被接受。 difignore=N
多少个字符的密码应收到difok将被忽略。默认为23 minlen=N
新的最低可接受的大小密码(加一个,如果没有禁用学分这是默认值)。除了在新密码的字符数,贷方(在长度+1),给出了各种人物的不同种类(其他,大写,小写,数字)。此参数的默认值是9,它是一个老式的UNIX密码的字符相同类型的所有好,但可能过低,利用一个MD5的系统增加安全性。请注意,有一个在Cracklib本身长度的限制,一“的方式太短“4极限是硬编码和定义的限制(6),将不参考minlen检查对。如果你想允许密码短短5个字符,你不应该使用这个模块。 dcredit=N
限制新密码中至少有多少个数字。 ucredit=N
限制新密码中至少有多少个大写字符。 lcredit=N
限制新密码中至少有多少个小写字符。 ocredit=N
限制新密码中至少有多少个其它的字符。 此参数用于强制模块不提示用户的新密码,但以前使用的堆叠模块提供的密码之一。 dictpath=/path/to/dict //注:密码字典,这个是验证用户的密码是否是字典一部分的关键 cracklib密码强度检测过程:
首先检查密码是否是字典的一部分,如果不是,则进行下面的检查
密码强度检测过程–>
新密码是否旧密码的回文–>
新密码是否只是就密码改变了大小写–>
新密码是否和旧密码很相似–>
新密码是否太短–>
新密码的字符是否是旧密码字符的一个循环 例如旧密码:123 新密码:231 –>
这个密码以前是否使用过 /etc/pam.d/system-auth
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 \\复杂度验证
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so 实例:
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
最小长度为8和至少1位数字,1位大写字母,和另外1个字符的密码 注意这个设置对于root没有作用,
只针对普通用户修改自己密码时起作用

linux 密码复杂度设置的更多相关文章

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

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

  2. Linux密码复杂度问题

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

  3. MySQL密码复杂度与密码过期策略介绍

    前言: 年底了,你的数据库是不是该巡检了?一般巡检都会关心密码安全问题,比如密码复杂度设置,是否有定期修改等.特别是进行等保评测时,评测机构会要求具备密码安全策略.其实 MySQL 系统本身可以设置密 ...

  4. 等保审核 --- MySQL密码复杂度--和连接错误超时等

    系统版本: Centos 7 MySQL版本: 5.7.19 架构: 主从架构 审计插件: validate_password.so(数据库自带5.6后版本都拥有此插件) 操作过程: 1). 安装va ...

  5. Linux下修改密码复杂度

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

  6. 关于linux系统密码策略的设置

    由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度. 操作步骤如下,不会的同学可以参考: 操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处 ...

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

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

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

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

  9. oracle 11g/12c 密码复杂度验证设置

    ############################################################################### ###### 11g ###### ## ...

随机推荐

  1. ThinkPHP5权限控制

    我在用ThinkPHP5做开发的时候发现,它没有权限类,自己写太麻烦,于是就想到了把TP3里面的权限类拿来修改使用,结果这种方法是可行的,下面记录附上修改后的Auth.php权限类 <?php ...

  2. (转)mongodb学习(翻译1)

    原文地址:http://www.cnblogs.com/Johnzhang/archive/2013/09/10/3313582.html 学习mongodb,试着翻译写,英语能力有限,希望大家指正, ...

  3. eclipse中的项目无法在build/classes目录下生成.class字节码

    转载 原文链接:https://www.cnblogs.com/iceblow/p/6648715.html 1.首先确定project->Build Automatically是否勾选上:  ...

  4. PopupWindow简单使用(一)

    1.构造函数 //方法一:     public PopupWindow (Context context)     //方法二:     public PopupWindow(View conten ...

  5. 用firebug 进行表单自定义提交

    在一些限制网页功能的场合,例如,防止复制内容,防止重复提交,限制操作的时间段/用户等,网页上一些按钮是灰化的(禁用的),这通常是通过设置元素的 disable属性来实现的.但在后台并没有做相应的功能限 ...

  6. ubuntu14.04,安装docker(源代码管理工具)

    一,安装docker: 1,安装curl:在shell中执行:sudo apt-get install curl 2,shell中执行:curl -sSL https://get.daocloud.i ...

  7. 第五篇 Python内置函数

    内置函数 abs() delattr() hash() memoryview() set() all()    dict()  help() min() setattr() any()  dir()  ...

  8. ### 20165219 2017-2018-2《Java程序设计》结对编程一 第二周总结

    20165219 2017-2018-2<Java程序设计>结对编程一 第二周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  9. 移动端头部适配 meta基础知识

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  10. Mongoid Relationships

    1:1 embedded relationship: M:1 linked relationship(one_direction): child uses belongs_to parent uses ...