1.chage命令

chage 即 change age ,可以查看、修改用户密码的有效期信息,还可以查看最新一次修改密码日期、设置密码修改的时间、在指定时间后锁定帐号等。
可以依据需要,让用户定期修改密码、指定密码过期用户的新有效期重新使用
-h查看chage的帮助信息

  1. root@uos-PC:/home/uos# chage -h
  2. 用法:chage [选项] 登录
  3. 选项:
  4. -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
  5. -E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
  6. -h, --help 显示此帮助信息并推出
  7. -I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
  8. -l, --list 显示帐户年龄信息
  9. -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
  10. -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
  11. -R, --root CHROOT_DIR chroot 到的目录
  12. -W, --warndays 警告天数 将过期警告天数设为“警告天数”

chage 修改账户密码信息需要 root 权限。

2. -l 查看账户的密码信息

chage -l user_name 查看密码信息:

  1. $ chage -l root_test2
  2. Last password change : Sep 14, 2021
  3. Password expires : Sep 17, 2021
  4. Password inactive : never
  5. Account expires : never
  6. Minimum number of days between password change : 0
  7. Maximum number of days between password change : 3
  8. Number of days of warning before password expires : 7

可以看到:密码的最后的修改时间、密码过期时间、密码失效(Password inactive)、账号过期、最小最大密码修改间隔、以及过期警告的天数。

3.-M 设置密码修改的最长天数

-M 设置密码有效期的天数。密码实际有效期是最近一次修改密码的日期加上此处设置的最长天数。当最长有效期设置大于等于10000时表示永久有效
如下,设置密码修改的最长天数为5,密码过期时间,也相应的变化:

  1. # chage -M 5 root_test2
  2. # chage -l root_test2
  3. Last password change : Sep 14, 2021
  4. Password expires : Sep 19, 2021
  5. Password inactive : never
  6. Account expires : never
  7. Minimum number of days between password change : 0
  8. Maximum number of days between password change : 5
  9. Number of days of warning before password expires : 7

设置密码有效期为 10000 天,则密码将会永不失效:

  1. # chage -M 10000 root_test2
  2. # chage -l root_test2
  3. Last password change : Sep 14, 2021
  4. Password expires : never
  5. Password inactive : never
  6. Account expires : never
  7. Minimum number of days between password change : 0
  8. Maximum number of days between password change : 10000
  9. Number of days of warning before password expires : 7

4.chage其他参数

  • chage -E date_str 设置账户过期,指定账户具体的过期日期。 ```shell

    chage -E 2021-09-20 root_test2

    chage -l root_test2

    Last password change : Sep 14, 2021 Password expires : never Password inactive : never Account expires : Sep 20, 2021 Minimum number of days between password change : 0 Maximum number of days between password change : 10000 Number of days of warning before password expires : 7
  1. **chage -E days** 指定天数,表示的是从 1970 1 1 开始的天数。<br />如下,指定 11111 天,此时账户已经失效:
  2. ```shell
  3. [root@VM_0_15_centos ~]# chage -E 11111 root_test2
  4. [root@VM_0_15_centos ~]# chage -l root_test2
  5. Last password change : Sep 14, 2021
  6. Password expires : never
  7. Password inactive : never
  8. Account expires : Jun 03, 2000
  9. Minimum number of days between password change : 0
  10. Maximum number of days between password change : 10000
  11. Number of days of warning before password expires : 7
  12. [root@VM_0_15_centos ~]# su - root_test
  13. Last login: Tue Sep 14 09:07:25 CST 2021 on pts/0
  14. [root_test@VM_0_15_centos ~]$ su - root_test2
  15. Password:
  16. Your account has expired; please contact your system administrator
  17. su: User account has expired
  18. [root_test@VM_0_15_centos ~]$

chage -E 修改过期日期后,无法设置会 never 的状态…

5.chage -I 设置密码过期后多长天数密码失效

  • chage -I 用于设置密码过期后,多少天数之后密码无效。

设置账户密码一天后过期:

  1. # chage -M 1 root_test2
  2. # chage -l root_test2
  3. Last password change : Sep 14, 2021
  4. Password expires : Sep 15, 2021
  5. Password inactive : never
  6. Account expires : Oct 16, 2243
  7. Minimum number of days between password change : 0
  8. Maximum number of days between password change : 1
  9. Number of days of warning before password expires : 7

设置账户密码过期后2天后密码失效:

  1. # chage -I 2 root_test2
  2. # chage -l root_test2
  3. Last password change : Sep 14, 2021
  4. Password expires : Sep 15, 2021
  5. Password inactive : Sep 17, 2021
  6. Account expires : Oct 16, 2243
  7. Minimum number of days between password change : 0
  8. Maximum number of days between password change : 1
  9. Number of days of warning before password expires : 7

6.chage -d 0 强制用户登陆时修改口令

chage -d 0 可实现,强制用户登陆时修改口令。

7.chage -W 密码过期之前的警告天数

  1. # chage -W 8 root_test2
  2. # chage -l root_test2
  3. Last password change : Sep 14, 2021
  4. Password expires : Sep 15, 2021
  5. Password inactive : Sep 17, 2021
  6. Account expires : Oct 16, 2243
  7. Minimum number of days between password change : 0
  8. Maximum number of days between password change : 1
  9. Number of days of warning before password expires : 8

8.新用户创建是默认的密码有效策略

在创建新用户时,其默认的密码有效期等信息,采用的是 /etc/login.defs 配置文件中的设置。
如下Password aging controls

  1. # Password aging controls:
  2. #
  3. # PASS_MAX_DAYS Maximum number of days a password may be used.
  4. # PASS_MIN_DAYS Minimum number of days allowed between password changes.
  5. # PASS_MIN_LEN Minimum acceptable password length.
  6. # PASS_WARN_AGE Number of days warning given before a password expires.
  7. #
  8. PASS_MAX_DAYS 99999
  9. PASS_MIN_DAYS 0
  10. PASS_MIN_LEN 8
  11. PASS_WARN_AGE 7

可以通过修改 PASS_MAX_DAYS 等参数,实现新建用户时,默认的密码过期、警告等策略。比如指定一个合理的密码有效期,可以强制用户定期修改密码,保证服务器的安全。

9.参考

https://juejin.cn/post/7020323718165430285