跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Linux系统中批量添加用户及设置初始密码脚本自动化实现

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

相关文章