可使用Shell脚本批量添加用户并设初始密码:先通过useradd创建用户,再用chpasswd批量设置密码并强制首次修改。需准备严格权限的users.txt文件,每行“用户名:密码”,适配不同发行版密码加密差异。
在Linux系统中批量添加用户并设置初始密码,可以通过Shell脚本结合
、
和
等命令高效完成。关键在于避免交互式输入、确保密码安全可见性可控,并适配不同发行版(如CentOS/RHEL与Ubuntu/Debian对密码加密方式的细微差异)。
准备用户信息文件
创建一个纯文本文件(如
),每行包含用户名和初始密码,用冒号分隔:
alice:Passw0rd2024bob:Secur3P@sscharlie:MyL1nuxPwd
确保该文件权限严格(如
),防止密码泄露。
使用chpasswd批量设置密码(推荐)
支持从标准输入或文件批量更新密码,且自动处理密码加密,无需额外调用
或
:
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
先批量建用户(不设密码):
再批量设密码:
可选:强制首次登录修改密码:
处理密码过期与账户状态
为增强安全性,建议新用户首次登录即重置密码,并限制账户有效期(如30天):
设置密码立即过期:
锁定账户直到管理员启用:
(后续用
解锁)
指定账户过期时间:
完整可执行脚本示例
保存为
,赋予执行权限(
)后运行:
#!/bin/bashUSERS_FILE="users.txt"if [[ ! -f "$USERS_FILE" ]]; thenecho "错误:找不到 $USERS_FILE"exit 1fiwhile IFS=: read -r user pass; doif [[ -z "$user" || -z "$pass" ]]; then continue; fi# 创建用户,主目录,bash shelluseradd -m -s /bin/bash "$user" 2>/dev/nullif [[ $? -eq 0 ]]; thenecho "✓ 已创建用户:$user"# 设置密码并强制首次修改echo "$user:$pass" | chpasswdpasswd -e "$user" >/dev/nullelseecho "⚠ 用户 $user 已存在,跳过"fidone
useraddchpasswdpasswdusers.txtchmod 600 users.txtchpasswdopensslmkpasswdwhile IFS=: read -r user pass; do useradd -m -s /bin/bash "$user"; done chpasswd while IFS=: read -r user pass; do passwd -e "$user"; done passwd -e usernameusermod -L usernameusermod -Uusermod -e "2024-12-31" usernamebatch_add_users.shchmod +x