Linux中批量设置用户初始密码需用chpasswd命令配合用户名:密码格式的纯文本文件,不创建用户仅设密码并自动哈希加密;可配合passwd -e强制首次登录修改、usermod -e限制有效期,或用openssl预加密加-e参数提升安全性。

Linux 中批量设置用户初始登录密码,核心是用 chpasswd 命令配合预创建的用户列表。它不创建用户,只设密码,且自动完成哈希加密,适合新环境初始化或培训系统快速部署。
准备用户清单文件
新建一个纯文本文件(如 users.txt),每行写一个“用户名:初始密码”对,用英文冒号分隔:
- 确保用户名已存在(可用
id username验证) - 密码建议满足系统策略(如
PASS_MIN_LEN最小长度) - 避免在命令行直接写明文密码,防止历史记录泄露
示例内容:
alice:Init@2026<br>bob:Welcome#123<br>charlie:Train2026!
用 chpasswd 批量写入密码
执行以下命令,将文件内容导入系统:
sudo chpasswd < users.txt
成功后,所有用户即可用对应初始密码登录。可快速验证某一行是否生效:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
sudo grep '^alice:' /etc/shadow
输出中若含 $6$ 开头的哈希串,说明密码已更新成功。
增强安全性的常用操作
初始密码设好后,通常需强制用户首次登录时修改:
- 运行
sudo passwd -e username标记密码为过期(对每个用户或循环执行) - 或批量执行:
sudo awk -F: '{print $1}' users.txt | xargs -I {} passwd -e {} - 若需限制账户有效期(如仅开放30天),再加:
sudo usermod -e "$(date -d '+30 days' +%Y-%m-%d)" username
更安全的进阶做法
若环境要求杜绝明文密码落地,可用预加密方式:
- 用
openssl passwd -6 'MyPass123'生成 SHA-512 哈希 - 把文件改为
alice:$6$salt$hash格式 - 加
-e参数运行:sudo chpasswd -e < encrypted_users.txt
这种方式避免了明文密码出现在文件或内存中,适合高合规要求场景。

















