ubuntu 用户密码到期时间设置

时间:2022-10-26 14:53:39

一、基础知识

/etc/login.defs 文件用于在创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。
需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。
/etc/login.defs文件内容 设置项 含义 MAIL_DIR /var/spool/mail 创建用户时,系统会在目录 /var/spool/mail 中创建一个用户邮箱,比如 lamp 用户的邮箱是 /var/spool/mail/lamp。 PASS_MAX_DAYS 99999 密码有效期,99999 是自 1970 年 1 月 1 日起密码有效的天数,相当于 273 年,可理解为密码始终有效。 PASS_MIN_DAYS 0 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。 PASS_MIN_LEN 5 指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。 PASS_WARN_AGE 7 指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。 UID_MIN 500 指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。注意,如果手工指定了一个用户的 UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500~549 之间的 UID 没有使用。 UID_MAX 60000 指定用户最大的 UID 为 60000。 GID_MIN 500 指定最小 GID 为 500,也就是在添加组时,组的 GID 从 500 开始。 GID_MAX 60000 用户 GID 最大为 60000。 CREATE_HOME yes 指定在创建用户时,是否同时创建用户主目录,yes 表示创建,no 则不创建,默认是 yes。 UMASK 077 用户主目录的权限默认设置为 077。 USERGROUPS_ENAB yes 指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组,此项的默认值为 yes。 ENCRYPT_METHOD SHA512 指定用户密码采用的加密规则,默认采用 SHA512,这是新的密码加密模式,原先的 Linux 只能用 DES 或 MD5 加密。

chage命令 chage命令用于查看以及修改用户密码的有效期信息,它是 change age 的缩写。当需要用户在指定时间内登录或者需要及时修改密码的时候可以使用此命令,通过此命令,我们可以查看帐号的各种信息,比如:最新一次修改密码日期、设置密码修改时间、在指定时间后锁定帐号。我们可以通过 -h 选项查看chage的帮助信息

-l : 列出用户密码老化信息
-d : 设置最近一次修改密码的时间
-m : 设置密码修改的最小间隔时间(单位:天)
     小于这个天数时将不允许修改密码
-W : 密码过期前几天开始警告

二、修改用户密码到期时间

默认的用户配置是 ubuntu 用户密码到期时间设置
一般会修改的是最大密码时间和最短时间,可以使用sed替换

sed -i "s/PASS_MAX_DAYS 365/PASS_MAX_DAYS 365/g"  /etc/login.defs
sed -i "s/PASS_MIN_DAYS 1/PASS_MIN_DAYS 1/g"  /etc/login.defs

更改目前现有账户的密码到期时间

chage -l admin
chage -I -1 -m 0 -M 99999 -E -1 admin