一 相关文件
文件 | 作用 |
---|---|
/etc/passwd | 存放用户信息 |
/etc/shadow | 存放用户密码 |
/etc/group | 存放用户组信息 |
/etc/gshadow | 存放/etc/group的加密信息 |
首先解释 /etc/passwd 文件下的各列信息含义
[oldboy@master ~]$ sudo tail -5 /etc/passwd
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
列数 | 名称 | 含义 |
---|---|---|
1 | username | UID到名称的一种映射 |
2 | password | 以前是存放密码的位置,现在存放在/etc/shadow |
3 | UID | 用户ID,最基本的级别标识用户的编号 |
4 | GID | 用户主要组的ID编号 |
5 | GECOS | 任意文本,一般是用户的姓名 |
6 | /home/dir | 用户个人数据和配置文件的存放目录 |
7 | shell | 用户登录时运行的程序,一般提供命令提示符 |
其次是 /etc/shadow 文件中各列信息的含义。
[oldboy@master ~]$ sudo tail -5 /etc/shadow
[sudo] password for oldboy:
avahi:!!:19323::::::
postfix:!!:19323::::::
ntp:!!:19323::::::
tcpdump:!!:19323::::::
oldboy:$6$pO.iG1Bl3a8RS/k5$DSHXmE7Klnsnn4ys7KVWolPAlCrgJi1rM/sAigFA.e4JurEdfpp65k6gsuyxMIj/aDXlUsmXcphCRAbeOUCqo0:19323:0:99999:7:::
列数 | 名称 | 含义 |
---|---|---|
1 | name | 系统的有效账户名 |
2 | password | 已加密的密码;如果是感叹号,表示密码已经被锁定 |
3 | lastchange | 最近一次更改密码的日期,表示为距离1970年1月1日的天数 |
4 | minage | 可以更改密码前的最短天数,0则表示“无最短期限要求” |
5 | maxage | 必须更改密码前的最多天数 |
6 | warning | 密码即将到期的警告期 |
7 | inactive | 账户在密码到期后保持活跃的天数,此时账户仍可登录和修改密码;天数过后,账户锁定 |
8 | expire | 账户到期日期,表示为距离1970年1月1日的天数 |
9 | blank | 空白字段,供未来使用 |
二 修改密码
passwd 用户名
三 设置密码过期策略
使用chage
命令设置密码过期策略。
首先创建一个用户tom
[root@master ~]# useradd tom
[root@master ~]# id tom
uid=1001(tom) gid=1001(tom) groups=1001(tom)
然后给用户添加密码为123456
[root@master ~]# passwd tom
Changing password for user tom.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
此时查看tom的密码过期策略
[root@master ~]# chage -l tom
Last password change : Dec 12, 2022
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
首先设置tom在下一次登陆时,强制修改密码
[root@master ~]# chage -d 0 tom
接着设置用户将在180天后过期
[root@master ~]# date -d "+180 days"
Sat Jun 10 14:50:18 CST 2023
[root@master ~]# chage -E 2023-06-10 tom
再设置,包括tom在内的所有用户必须最多30天,要修改一次密码
[root@master ~]# cat /etc/login.defs|grep '^PASS_MAX'
PASS_MAX_DAYS 30
最后,突然反悔,希望仅设置tom用户最迟每10天修改一次密码
并将对tom用户的密码策略修改内容进行打印。
[root@master ~]# chage -M 10 tom
[root@master ~]# chage -l tom
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : Jun 10, 2023
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7