密码更换周期设置
密码定期更换配置在 /etc/login.defs
中:
1 | PASS_MAX_DAYS 90 # 密码到期时间 |
注意:
在 /etc/login.defs
中设置仅影响创建用户,而不会影响现有用户。
如果设置为现有用户,使用命令 chage -M(days)(user)
,例如:chage -M 60 root
。
chage命令
chage 命令是用来修改帐号和密码的有效期限。
语法
chage [选项] 用户名
选项
- -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
- -M:密码保持有效的最大天数。
- -w:用户密码到期前,提前收到警告信息的天数。
- -E:帐号到期的日期。过了这天,此帐号将不可用。
- -d:上一次更改的日期。
- -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
- -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
示例
1 | # 查看root配置 |
密码复杂度设置
CentOS7/RHEL7 开始使用 pam_pwquality 模块进行密码复杂度策略的控制管理。pam_pwquality 替换了原来 Centos6/RHEL6 中的 pam_cracklib 模块,并向后兼容。
pam_pwquality模块设置
retry=N 允许重试N次
difok=N 新密码必需与旧密码不同的位数 difok=3 新密码必须与旧密码有3位不同
minlen=N 最小位数
ucredit=N 大写字母位数
lcredit=N 小写字母位数
dcredit=N 数字个数
ocredit=N 特殊字母的个数
两种方式实现:
- 1,直接指定 pam_pwquality 模块参数,在
/etc/pam.d/system-auth
中的password requisite pam_pwquality.so
行尾添加具体参数,比如minlen=16 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1
,表示最小密码长度16位,数字,大小写字母,特殊字符均至少包含1位。
N >= 0:密码中最多有多少个;
N < 0 :密码中最少有多少个;
1 | password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1 |
- 2,通过修改
/etc/security/pwquality.conf
参数文件,定义密码复杂度规则。
修改 pwquality.conf
参数文件有2种方法。
(1)直接修改 /etc/security/pwquality.conf
。
(2)使用 authconfig
命令修改,修改后最终会体现在 /etc/security/pwquality.conf
。
1 | # 最小长度 |
示例:
1 | vim /etc/security/pwquality.conf |
1 | minlen = 8 |
Centos7 继续使用 pam_cracklib 模块检验密码复杂度
vim /etc/pam.d/system-auth
1 | # 添加到 pam_pwquality.so 所在行的上行 |
Read Hat配置密码复杂度
vim /etc/pam.d/system-auth
1 | password requisite pam_cracklib.so retry=3 difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 |
参考: