统信UOS桌面版默认不启用密码有效期策略,需手动配置PAM模块并设置chage参数实现90天有效期与7天预警,新用户通过adduser.conf模板自动继承,root账户须单独配置。

统信UOS桌面版默认不启用密码有效期策略,若单位或组织有合规要求(如等保2.0、金融行业密码管理规范),需手动配置PAM模块强制用户定期更换登录密码,否则系统不会主动提醒或拒绝过期密码登录。
确认系统版本与权限前提
打开终端,执行 cat /etc/os-version 查看版本号;当前主流生产环境为 UOS 2024(内核 6.6+)或 UOS 2023(内核 6.1+)。【必须使用 root 权限操作,普通用户无法修改 /etc/pam.d/common-password】
输入 sudo -i 切换为 root 用户,再继续后续步骤。
启用PAM密码过期控制模块
编辑PAM密码策略配置文件:sudo nano /etc/pam.d/common-password
在文件末尾新增一行(不要替换已有行):password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
再新增一行:password requisite pam_pwquality.so retry=3 minlen=8 difok=3 maxrepeat=2
这两行分别启用密码强度校验和基础哈希机制,是后续设置有效期的必要前置条件;漏掉会导致密码修改时提示“Authentication token manipulation error”且无法生效。
配置密码最大有效期与警告天数
执行命令写入全局策略:sudo chage -M 90 -W 7 $(whoami)
该命令仅对当前用户生效;若要批量设置所有普通用户(不含 root),运行:for u in $(cut -d: -f1 /etc/passwd | grep -E '^[a-z]'); do sudo chage -M 90 -W 7 "$u"; done
【-M 90 表示密码最长使用90天,超期后首次登录将被强制跳转至密码重置界面;-W 7 表示到期前7天开始在终端登录时显示倒计时提醒】
验证某用户策略是否写入成功:执行 chage -l username(把 username 替换为实际用户名),输出中应包含 “Maximum number of days between password change : 90” 和 “Number of days of warning before password expires : 7”。
强制新用户默认继承有效期策略
编辑新用户模板配置:sudo nano /etc/adduser.conf
找到 #EXPIRE= 行,取消注释并修改为:EXPIRE=(留空表示不设账户过期日)
找到 #PASS_MAX_DAYS= 行,取消注释并设为:PASS_MAX_DAYS=90
找到 #PASS_WARN_AGE= 行,取消注释并设为:PASS_WARN_AGE=7
保存退出;此后用 adduser 创建的新账户将自动拥有90天密码有效期和7天预警。
测试密码过期触发逻辑
方法一:模拟时间推进
执行 sudo date -s "2026-10-30" 将系统日期调至90天后 → 重启电脑 → 在登录界面输入原密码 → 系统弹出“密码已过期,请重置”对话框 → 输入原密码 → 设置新密码 → 完成强制更新。
方法二:直接标记为过期
执行 sudo chage -d 0 username(username 替换为目标用户名)→ 下次该用户登录即触发强制改密流程,无需调系统时间。
注意:root 账户不受此策略限制,【若需对 root 启用,必须显式执行 chage -M 90 root,否则即使配置了全局模板也不生效】

















