系统安全加固2——密码有效期
密码有效期与文章《系统安全加固1——密码复杂度》配合设置,起到强化作用。
1、环境
操作系统 :Server 8.3 (衍生自 CentOS 8.3)
2、修改系统默认密码有效期
密码有效期的配置文件为:/etc/login.defs 。这四行内容的解释在文件中也给出了。
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 7
这里面重要的是:
- 第一行:密码有效期天数(白话:过了90天,密码就失效了);
- 第二行:两次密码修改需要的间隔天数(此处为0,也就是可以多次修改密码)
- 第三行:密码最小位数,与《系统安全加固1——密码复杂度》中密码最小位数保持一致;
- 第四行:密码过期告警日期(此处为提前一周给出密码过期告警)
因为我要将修改固化到Server 8.3系统中,所以我需要修改软件包来实现。/etc/login.defs文件属于shadow源码包(shadow-utils.login.defs文件)。
修改内容和上面保持一致。
3 需要注意的点
3.1 系统中直接修改
1)在一个已经安装好的系统中,修改/etc/login.defs文件之后,并不会立即生效。
2)在已经安装好的系统中,修改/etc/shadow文件中用户名所在行的密码有效期(将99999(永不过期)修改为其他数字时),只要用户使用到需要密码的场景,首先会弹出修改密码的提示(也就是立即生效了)。
3.2 修改shadow软件包后,重打ISO
安装完系统、重启之后,强制需要修改密码(对普通用户,对root并没有生效)。原因是/etc/shadow中用户名后面的密码有效期数据修改了!
3.3 注意/etc/login.defs文件中开头的注释信息
请注意,这个配置文件中的参数控制着来自shadow-utils组件的工具的行为。这些工具都没有使用PAM机制,\
因此使用PAM的工具(如passwd命令)应该在其他地方配置。更多信息请参考/etc/pam.d/system-auth。
shadow-utils包中提供的命令(不使用PAM机制)有:
[root@localhost etc]# rpm -ql shadow-utils
......
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/lastlog
/usr/bin/newgidmap
/usr/bin/newgrp
/usr/bin/newuidmap
/usr/bin/sg
/usr/sbin/adduser
/usr/sbin/chgpasswd
/usr/sbin/chpasswd
/usr/sbin/groupadd
/usr/sbin/groupdel
/usr/sbin/groupmems
/usr/sbin/groupmod
/usr/sbin/grpck
/usr/sbin/grpconv
/usr/sbin/grpunconv
/usr/sbin/newusers
/usr/sbin/pwck
/usr/sbin/pwconv
/usr/sbin/pwunconv
/usr/sbin/useradd
/usr/sbin/userdel
/usr/sbin/usermod
/usr/sbin/vigr
/usr/sbin/vipw
......
4 测试用例点
1)密码有效期过后,强制修改密码(此处可以通过改短有效期时间来测试)
2)密码过期提示不满足7天之内,没有提示
3)密码过期提示满足7天之内,显示提示信息
此篇内容已经在Server 8.3上进行过验证!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App