chpasswd可高效批量修改用户密码,支持标准输入和文件导入,需确保格式规范、权限正确及密码安全,推荐结合校验、加密控制与自动化清理流程。
直接用 chpasswd 就能高效完成,无需写复杂脚本或装额外工具。它原生支持批量操作,关键在格式规范、权限到位、密码安全。
系统自带的 chpasswd 是最轻量、最可靠的批量改密方式。它不依赖网络、不需交互,只要 root 权限和正确格式的输入即可运行。
echo "user1:NewPass@2026" | sudo chpasswd
users.txt,每行一个 用户名:密码(冒号英文、无空格),然后执行 sudo chpasswd < users.txt
id username 或 getent passwd username 检查,避免静默失败明文密码直接传入有泄露风险,生产环境必须控制加密方式和生命周期。
-c SHA512 参数,例如 sudo chpasswd -c SHA512 < users.txt
echo 中硬编码密码;优先用文件,并设权限 chmod 600 users.txt
shred -u users.txt 安全擦除原始密码文件,不留痕迹把检查、执行、清理串成可复用的流程,减少人为疏漏。
users.txt,用 id 预检用户,跳过不存在的账户并记录警告chpasswd 后检查退出码,$? 非 0 时中断并提示错误单台机器用 chpasswd 足够;若需同步改多台,推荐组合 SSH 密钥 + 简单循环,而非引入 sshpass 或 expect。
ssh-copy-id 推送公钥到所有目标主机for host in srv01 srv02 srv03; do ssh "$host" 'sudo chpasswd < /tmp/batch.pass' < users.txt; done
users.txt 先 scp 过去,再远程执行,避免管道传输中断