linux 密码复杂度设置
/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 密码复杂度设置的更多相关文章
- linux(centos)下密码有效期和密码复杂度设置
1.密码有效期 方法一: chage -l 用户名 查看用户的过期时间 chage -M 99999 用户名 用命令修改过期时间为永久 chage -M 90 用户名 设置密码有效期为90天 chag ...
- Linux密码复杂度问题
转:http://hunkz.blog.51cto.com/6157447/1630369
- MySQL密码复杂度与密码过期策略介绍
前言: 年底了,你的数据库是不是该巡检了?一般巡检都会关心密码安全问题,比如密码复杂度设置,是否有定期修改等.特别是进行等保评测时,评测机构会要求具备密码安全策略.其实 MySQL 系统本身可以设置密 ...
- 等保审核 --- MySQL密码复杂度--和连接错误超时等
系统版本: Centos 7 MySQL版本: 5.7.19 架构: 主从架构 审计插件: validate_password.so(数据库自带5.6后版本都拥有此插件) 操作过程: 1). 安装va ...
- Linux下修改密码复杂度
在linux,设置密码复杂度的方法有几个1. 一个是在/etc/login.defs文件,里面几个选项PASS_MAX_DAYS 90 #密码最长过期天数PASS_MIN_DAYS 80 #密码最小过 ...
- 关于linux系统密码策略的设置
由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度. 操作步骤如下,不会的同学可以参考: 操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处 ...
- Linux系统密码复杂度安全配置
密码有效期控制 在文件/etc/login.defs中进行设置,如下参数 PASS_MAX_DAYS 180 #密码最长过期天数 PASS_MIN_DAYS 30 #密码最小过期天数 PASS_MIN ...
- linux加固安全之密码复杂度
随着linux系统使用的普遍性,对linux用户及系统安全要求也随之提升,单纯从单位制度,用户安全意识上来规范,并不能杜绝弱口令,必须从技术上要求用户定时修改复杂的密码,从而提高用户和系统的安全性. ...
- oracle 11g/12c 密码复杂度验证设置
############################################################################### ###### 11g ###### ## ...
随机推荐
- C#使用var定义变量时的四个特点
使用var定义变量时有以下四个特点: 1. 必须在定义时初始化.也就是必须是var s = “abcd”形式: 2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了. 3. var要求是 ...
- (函数分治法)实现pow函数(x的y次方幂)
题目:实现pow函数. 题目分析:因为一个一个乘,循环太大,参考矩阵连乘问题:对于n=4的话,可以得出x的平方,然后平方与平方相乘.节省计算次数.对于偶数的幂,只要x的平方多次递归调用即可:对于奇数的 ...
- Linq学习<二>
http://www.cnblogs.com/wyqlijin/archive/2011/02/25/1964934.html 这位仁兄写的比较高深,建议大家看看 一: 这一篇以一个数据类为例,操作数 ...
- Sql 查询过慢,尝试重建索引
DBCC showcontig('Table') DBCC DBREINDEX('Table') 分析表的索引建立情况:DBCC showcontig('Table') DBCC SHOWCONTIG ...
- VS vs2012制作安装包
VS vs2012制作安装包 一.参考地址: http://www.3fwork.com/b100/000196MYM014103/
- PHP获取对象的纯数字属性
php的对象属性 我们知道获取php的对象属性用箭头: echo $obj->name; 如果属性名是一个变量,那么可以用: $var = 'name'; echo $obj->$var; ...
- apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
博客转载https://blog.csdn.net/lan_shu/article/details/55190127 压力测试工具LoadRunner是收费的,而且操作复杂.作为开发人员当然是用apa ...
- bzoj1070【SCOI2007】修车(费用流)
题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待 ...
- Java面向对象之USB接口实例
一.需求: 1.在电脑上设置一个USB接口. 2.电脑运行时,将鼠标连接到接口上,鼠标可以使用自己的功能. 3.电脑运行时,将键盘连接到接口上,键盘可以使用自己的功能.(使用接口的作用:减低鼠标.键盘 ...
- 【SSO单点系列】(6):CAS4.0 单点流程序列图(中文版)以及相关术语解释(TGT、ST、PGT、PT、PGTIOU)
CAS 相关的内容好久没写了,可能下周会继续更新一些内容吧. 在上一篇中的单点流程序列图由于是从官网直接下载来的,上面都是英文,可能有的朋友看不懂,因此修改成中文的. PS:只修改了一个,第二个图明天 ...