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 <p>成功后,所有用户即可用对应初始密码登录。可快速验证某一行是否生效:</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill7940" title="Zynq Linux Hardware Debug"><img src="https://img.php.cn/upload/skill/000/000/081/179177762288958.jpg" alt="Zynq Linux Hardware Debug" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill7940" title="Zynq Linux Hardware Debug" class="overflowclass">Zynq Linux Hardware Debug</a> <p class="overflowclass">Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。</p> </div> <a rel="nofollow" href="/xiazai/skill7940" title="Zynq Linux Hardware Debug" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <pre class="brush:php;toolbar:false;">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
这种方式避免了明文密码出现在文件或内存中,适合高合规要求场景。










