文章目录
- username=”user${i}” 生成的用户名为: user1user2…user100 你可以根据需要修改为 testuser${i}、dev${i} 等。
- openssl rand -base64 12 | tr -d ‘/+=’ 说明: openssl rand -base64 12:生成 12 字节随机字符串 tr -d '/+=':去掉可能导致输入问题的特殊字符 这样生成的密码: 随机性强 适合测试 / 内部使用
- sudo useradd -m “$username” 参数说明: -m:自动创建 /home/username 目录 需要 root 权限
- echo “$username:$password” | sudo chpasswd 相比 passwd 交互式方式,chpasswd 非常适合脚本自动化。
- echo “$username:$password” >> “$output_file” 最终生成的 user_credentials.txt 内容类似: user1:KjS82jds9Asuser2:9DJkS8sd2Lm… 注意:该文件包含明文密码,请妥善保管或仅用于测试环境。
目录
- 一、实现思路
- 二、完整脚本示例
- 三、脚本说明
- 1、 用户名规则
- 2、 随机密码生成
- 3、 创建用户
- 4、 设置密码(推荐方式)
- 5、 保存账号信息
- 四、脚本使用方法
- 1、 保存脚本
- 2、 添加执行权限
- 3、 执行脚本
- 五、补充:使用 openssl 生成加密密码
- 六、安全建议
- 七、总结
在日常 Linux 运维或测试环境中,经常会遇到需要批量创建用户并设置密码的场景,比如:
- 测试多用户登录
- 教学或实验环境初始化
- 内部系统批量账号准备
手动逐个创建不仅效率低,而且容易出错。本文介绍一种 使用 Bash 脚本 + Linux 命令 批量创建 100 个用户,并将用户名和密码保存到文本文件中的方法。
整体流程如下:
- 使用
for循环生成用户列表(user1 ~ user100) - 通过
openssl生成随机密码 - 使用
useradd创建用户 - 使用
chpasswd批量设置密码 - 将用户名和密码保存到
.txt文件中,方便后续分发或查看
#!/bin/bash
# 保存用户名和密码的文件
output_file="user_credentials.txt"
# 创建或清空文件
> "$output_file"
# 循环创建 100 个用户
for i in {1..100}; do
username="user${i}"
# 生成随机密码(12 位)
password=$(openssl rand -base64 12 | tr -d '/+=')
# 创建用户(-m 自动创建 home 目录)
sudo useradd -m "$username"
# 设置用户密码
echo "$username:$password" | sudo chpasswd
# 将用户名和密码写入文件
echo "$username:$password" >> "$output_file"
done
echo "用户创建完成,账号信息已保存到 $output_file"
username="user${i}"
生成的用户名为:
user1
user2
…
user100
你可以根据需要修改为 testuser${i}、dev${i} 等。
openssl rand -base64 12 | tr -d '/+='
说明:
openssl rand -base64 12:生成 12 字节随机字符串tr -d '/+=':去掉可能导致输入问题的特殊字符
这样生成的密码:
- 随机性强
- 适合测试 / 内部使用
sudo useradd -m "$username"
参数说明:
-m:自动创建/home/username目录- 需要 root 权限
echo "$username:$password" | sudo chpasswd
相比 passwd 交互式方式,chpasswd 非常适合脚本自动化。
echo "$username:$password" >> "$output_file"
最终生成的 user_credentials.txt 内容类似:
user1:KjS82jds9As
user2:9DJkS8sd2Lm
…
注意:该文件包含明文密码,请妥善保管或仅用于测试环境。
vi create_users.sh
粘贴脚本内容并保存。
chmod +x create_users.sh
sudo ./create_users.sh
必须使用 sudo 或 root 用户运行。
如果你只想生成 加密后的密码字符串(例如用于 /etc/shadow 或配置文件),可以使用:
openssl passwd -1 "123456"
示例输出:
$1$R9E3fH2J$gXGk3L1ZC8mZkYQ5DqGJb/
说明:
-1:使用 MD5-crypt"123456":原始明文密码
实际脚本中更推荐使用 chpasswd,系统会自动选择合适的加密算法。
1.仅在测试或内部环境使用明文密码文件
2.不要在生产环境长期保存明文密码
3.用完后建议删除:
shred -u user_credentials.txt
4.如果是服务器环境,建议结合:
- SSH key 登录
- 强制首次登录修改密码
通过 Bash 脚本 + Linux 原生命令,你可以:
- 快速批量创建用户
- 自动生成安全随机密码
- 方便地导出账号信息
这是一个非常实用的 Linux 运维自动化小技巧,适合新服务器初始化或测试环境搭建。
到此这篇关于shell脚本结合Linux命令实现批量创建用户并生成随机密码的文章就介绍到这了,更多相关shell批量创建用户内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- Shell批量创建删除用户的实现方法
- linux创建用户,添加及修改shell方式
- shell脚本批量创建用户的方法小结
- shell脚本实现统计文件大小、批量创建用户的示例
- shell脚本 自动创建用户详解及实例代码
- Shell创建用户并生成随机密码脚本分享