注意:root用户并不会受这些限制,它可以设置任意的密码。
在linux,设置密码复杂度的方法有几个
1. 一个是在/etc/login.defs文件,里面几个选项
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 0 #修改密码最小间隔天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数
**注意**:以上修改只对新建的用户生效,对已经存在的账号不起作用,已经存在的账号(新建的账号也适用)可以用chage命令进行设置(永久的)
chage [选项] 用户名
选项解析
-m:两次更改密码的时间间隔最小天数。为零时代表任何时候都可以更改密码。(chage -m 10 user)
-M:两次更改密码的时间间隔最大天数(此数值决定了密码过期时间,过期时间为最近修改密码日期与最大间隔天数相加的日期)
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用 (chage -E ‘2019-12-12’ user)。
-d:上一次更改密码的日期(chage -d 2019-11-11 user)。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
- 另外一个方法是,修改/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用户无用,因此,测试时需要对出root用户登陆普通用户!!