Linux设置密码策略

1. 设置密码有效期

1.1 通过修改文件实现,对所有用户有效

修改/etc/login.defs文件

PASS_MAX_DAYS 99999  
PASS_MIN_DAYS 0      
PASS_MIN_LEN  8      
PASS_WARN_AGE 7

说明:

参数 说明
PASS_MAX_DAYS 密码有效期,9999表示永久
PASS_MIN_DAYS 是否可修改密码,0为可修改,非0为多少天后可修改
PASS_MIN_LEN 密码最小长度,使用pam_cracklib Modules后,该参数无效
PASS_WARN_AGE 密码失效前7天通知用户修改密码

1.2 通过命令方式实现,对单个用户有效

强制用户下次登录时修改密码,并且设置密码最低有效期0和最高有限期90,提前15天发警告通知

chage -d 0 -m 0 -M 90 -W 15 root

2. 设置用户密码复杂度(使用pam_cracklib模块)

修改/etc/pam.d/system-auth文件

password    requisite     pam_cracklib.so retry=3 type= minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

pam_cracklib主要参数说明:

参数 说明
minlen=N 密码长度最小值
retry=N 重试多少次后返回密码修改错误
difok=N 新密码与旧密码不同的位数
dcredit=N 当N>=0时,密码中最多有多少位数字,当N<0时,密码中最少包含多少位数字
lcredit=N 小写字母的个数
ucredit=N 大写字母的个数
ocredit=N 特殊字条的个数
type 修改密码时,显示的名称
enforce_for_root 设置该参数,对root用户启用相同策略

3. 设置用户输入密码失败后,锁定用户

修改/etc/pam.d/password-auth文件

# vi /etc/pam.d/password-auth
auth      required      pam_env.so   在这一行下面添加下面一行
auth      required      pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=300

说明:

参数 说明
deny=5 输错密码5次被锁
unlock_time=300 用户被锁定300秒后可再输一次
even_deny_root 对root用户执行共同策略
root_unlock_time root用户被锁后300秒可再输一次

4. 用户被锁后解锁的方法

通过以下命令手工解锁:

# pam_tally2 -u <usrname> -r
Editing is enabled. Use the "Save changes" button below the editor to commit modifications to this file.