chpasswd可高效批量修改用户密码,支持标准输入和文件导入,需确保格式规范、权限正确及密码安全,推荐结合校验、加密控制与自动化清理流程。

直接用 chpasswd 就能高效完成,无需写复杂脚本或装额外工具。它原生支持批量操作,关键在格式规范、权限到位、密码安全。
chpasswd 基础用法:一行命令搞定多个用户
系统自带的 chpasswd 是最轻量、最可靠的批量改密方式。它不依赖网络、不需交互,只要 root 权限和正确格式的输入即可运行。
- 从标准输入修改:
echo "user1:NewPass@2026" | sudo chpasswd - 从文件批量导入:准备
users.txt,每行一个用户名:密码(冒号英文、无空格),然后执行sudo chpasswd - 确认用户已存在:运行前用
id username或getent passwd username检查,避免静默失败
密码安全与加密控制
明文密码直接传入有泄露风险,生产环境必须控制加密方式和生命周期。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 强制使用强哈希:加
-c SHA512参数,例如sudo chpasswd -c SHA512 - 避免命令行留痕:不要在
echo中硬编码密码;优先用文件,并设权限chmod 600 users.txt - 改完立即清理:用
shred -u users.txt安全擦除原始密码文件,不留痕迹
自动化脚本封装建议
把检查、执行、清理串成可复用的流程,减少人为疏漏。
- 开头校验文件是否存在、是否可读
- 逐行解析
users.txt,用id预检用户,跳过不存在的账户并记录警告 - 执行
chpasswd后检查退出码,$?非 0 时中断并提示错误 - 成功后自动销毁密码文件,不依赖人工清理
跨服务器批量处理(进阶场景)
单台机器用 chpasswd 足够;若需同步改多台,推荐组合 SSH 密钥 + 简单循环,而非引入 sshpass 或 expect。
- 先部署免密登录:用
ssh-copy-id推送公钥到所有目标主机 - 用 for 循环分发命令:
for host in srv01 srv02 srv03; do ssh "$host" 'sudo chpasswd - 更稳的方式是把
users.txt先scp过去,再远程执行,避免管道传输中断










