一、/etc/pam.d/system-auth
用户密码复杂度规则设定,需要通过/etc/pam.d/system-auth文件实施(针对的是普通用户状态下修改密码会生效,root用户状态下无效)
centos6中默认是通过pam_cracklib.so模块控制
centos7默认是通过pam_pwquality.so模块控制
1.centos6
#vi /etc/pam.d/system-auth
将文件中的下面两行:
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
改为:
第一行在后面增加 minlen=8 minclass=3
第二行后面增加 remember=5
2.centos7
#vi /etc/pam.d/system-auth
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
改为:
第一行在后面增加 minlen=8 minclass=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
第二行在后面增加 remember=5
上面文件中参数分别说明设置密码的时候要遵循下面的规则:
retry=3 定义登录/修改密码失败时,可以重试的次数;
type= 缺省提示符默认是不修改;
minlen=8 用户密码的最小长度;
minclass=3 使用字符类别的最小数目,四种字符类别:数字\大写字母\小写字母\特殊字符。
remember=5 最近5次用过的旧密码不能重用
此外还可以设置如下参数:
ucredit=-1 密码中最少有1个大写字母 (负数表示至少;正数表示至多.下面同理)
lcredit=-1 密码中最少有1个小写字母
dcredit=-1 密码中最少有1个数字
ocredit=-1 密码中最少有1个特殊字符
maxsequence=3 无三个连续的字符
maxrepeat=3 无三个重复的字符
difok=N 规定新密码中必需有N个字符与旧密码不同。如果新密码中有1/2以上的字符与旧密码不同时,该新密码就会被接受。
---------------------------------------------------------------------------
二、/etc/pam.d/system-auth
还可以设置密码登录失败次数和锁定时间
模块的添加方法:
在/etc/pam.d/system-auth文件中pam_env.so后面添加如下策略参数
auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=300
解析:
1、添加的位置顺序不要错,一定要在pam_env.so(auth required pam_env.so)后面
2、onerr=fail 表示定义了当出现错误时的缺省返回值;
3、even_deny_root 表示也限制root用户;
4、deny 表示设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
5、unlock_time 表示设定普通用户锁定后,多少时间后解锁,单位是秒;
6、root_unlock_time 表示设定root用户锁定后,多少时间后自动解锁否则手动,单位是秒;
---------------------------------------------------------------------------
三、/etc/login.defs
/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定
如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。
文件内容:
PASS_MAX_DAYS 99999
#密码最大有效期
PASS_MIN_DAYS 0
#两次修改密码的最小间隔时间
PASS_MIN_LEN 5
#密码最小长度,对于root无效
PASS_WARN_AGE 7
#密码过期前多少天开始提示
# Min/max values for automatic uid selection in useradd
#创建用户时不指定UID的话自动UID的范围
UID_MIN 500
#用户ID的最小值
UID_MAX 60000
#用户ID的最大值
#自动组ID的范围
GID_MIN 500
#组ID的最小值
GID_MAX 60000
#组ID的最大值
---------------------------------------------------------------------------
四、login.defs文件和/etc/pam.d/system-auth文件的规则设置对非root用户起作用,在root用户下则不会生效!如果设置root用户密码过期时间等,需要用change命令进行设置