直接用chage -d 0命令即可强制新用户首次登录修改密码:先用useradd和passwd创建用户并设初始密码,确保状态为P;再执行sudo chage -d 0 username标记密码已过期,登录即触发改密流程。

直接用 chage -d 0 命令就能实现。关键不是“加个开关”,而是让系统判定密码“已过期”,登录时自然触发改密流程。前提是用户已有可用密码,且未被锁定。
创建用户并设好初始密码
先确保新用户有可认证的密码:
- 运行 sudo useradd -m username 创建用户及家目录
- 执行 sudo passwd username 设置一个临时密码(如
TempPass2026!) - 检查状态:sudo passwd -S username 输出中应显示
P(密码可用),不能是NP(无密码)或L(锁定)
标记密码为“立即需更新”
这一步让系统认为密码在 Unix 时间起点(1970-01-01)就该换了:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 执行 sudo chage -d 0 username
- 验证效果:sudo chage -l username 中,“Password must be changed” 应显示
yes;“Password expires” 显示never是正常现象 - 注意:不要误用
-E(账户过期)或-M(最大有效期),它们不触发首次登录改密
确认 PAM 支持且无干扰配置
绝大多数主流发行版默认支持,但可快速核对:
- Debian/Ubuntu 查 /etc/pam.d/common-password,RHEL/CentOS 查 /etc/pam.d/system-auth
- 确认存在类似行:
password [success=1 default=ignore] pam_unix.so ... - 若禁用了
pam_unix.so的 password 段,登录后将跳过改密提示
测试与常见问题处理
用新用户身份登录(SSH 或本地终端)验证:
- 输入初始密码后,应立刻看到提示:
You are required to change your password immediately (root enforced) - 按提示连续输入两次新密码(需满足复杂度要求,如含大小写字母、数字、长度≥8)
- 若卡住或报错
Authentication token manipulation error,优先检查:
• 家目录权限是否正确(sudo chown -R username:username /home/username)
• 磁盘空间是否充足
• SELinux 是否限制(临时 setenforce 0 排查)

















