linux默认用户的密码是永不过期的,但是出于安全考虑在企业环境中一般会要求设置过期日期;但有时要求90天就过期,在这种严柯条件下我们有可能想给某个或某些用户开设后门,延长其密码有效期。
1.1 /etc/login.defs
密码有效期配置文件
PASS_MAX_DAYS--新建用户密码有效期,默认99999表示永不过期
PASS_MIN_DAYS--新建用户密码可修改的最短日期,默认为0,表示随时可以修改
PASS_MIN_LEN--新建用户密码最短长度
PASS_WARN_AGE--密码过期前开始警告的天数
1.2/etc/pam.d/system-auth
口令复杂度配置文件
retry--密码可尝试次数
minlen--密码最短长度
lcredit--小写字母最少个数
ucredit--大写字母最少个数
dcredit--数字最少个数
ocredit--特殊字符最少个数
minclass--以上四种类型中最少要求有几种
示例:
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=3 minclass=3
2.1 查看用户密码过期情况
chage -l username
以上是我主机ls用户的密码过期情况
Last password change--最近一次密码修改时间
Password expires--密码过期日期
Password inactive--密码失效日期
Account expires--账户过期日期
Minimum number of days between password change--两次修改密码之间相距的最小天数
Maximum number of days between password change--两次修改密码之间相距的最大天数
Number of days of warning before password expires--在密码过期之前警告的天数
2.2 修改密码过期日期
在上图可见ls用户的密码有效期为90天,我们这里将之修改为10000(如果天数大于或等于99999则表示永不过期)
chage -M 10000 username
就观查来看chage -M应该只是修改了/etc/shadow中的密码有效期天数,所以用root直接到/etc/shadow修改有效天数应访也是等效的
(不过/etc/shadow一般默认没有写权限,要手动编缉需要添加写权限才可修改;这也可以反推出,没有写权限不能修改文件内容只是针对用户态而言)