shell腳本結(jié)合Linux命令實(shí)現(xiàn)批量創(chuàng)建用戶并生成隨機(jī)密碼
在日常 Linux 運(yùn)維或測試環(huán)境中,經(jīng)常會遇到需要批量創(chuàng)建用戶并設(shè)置密碼的場景,比如:
- 測試多用戶登錄
- 教學(xué)或?qū)嶒?yàn)環(huán)境初始化
- 內(nèi)部系統(tǒng)批量賬號準(zhǔn)備
手動逐個(gè)創(chuàng)建不僅效率低,而且容易出錯(cuò)。本文介紹一種 使用 Bash 腳本 + Linux 命令 批量創(chuàng)建 100 個(gè)用戶,并將用戶名和密碼保存到文本文件中的方法。
一、實(shí)現(xiàn)思路
整體流程如下:
- 使用
for循環(huán)生成用戶列表(user1 ~ user100) - 通過
openssl生成隨機(jī)密碼 - 使用
useradd創(chuàng)建用戶 - 使用
chpasswd批量設(shè)置密碼 - 將用戶名和密碼保存到
.txt文件中,方便后續(xù)分發(fā)或查看
二、完整腳本示例
#!/bin/bash
# 保存用戶名和密碼的文件
output_file="user_credentials.txt"
# 創(chuàng)建或清空文件
> "$output_file"
# 循環(huán)創(chuàng)建 100 個(gè)用戶
for i in {1..100}; do
username="user${i}"
# 生成隨機(jī)密碼(12 位)
password=$(openssl rand -base64 12 | tr -d '/+=')
# 創(chuàng)建用戶(-m 自動創(chuàng)建 home 目錄)
sudo useradd -m "$username"
# 設(shè)置用戶密碼
echo "$username:$password" | sudo chpasswd
# 將用戶名和密碼寫入文件
echo "$username:$password" >> "$output_file"
done
echo "用戶創(chuàng)建完成,賬號信息已保存到 $output_file"
三、腳本說明
1、 用戶名規(guī)則
username="user${i}"
生成的用戶名為:
user1
user2
...
user100
你可以根據(jù)需要修改為 testuser${i}、dev${i} 等。
2、 隨機(jī)密碼生成
openssl rand -base64 12 | tr -d '/+='
說明:
openssl rand -base64 12:生成 12 字節(jié)隨機(jī)字符串tr -d '/+=':去掉可能導(dǎo)致輸入問題的特殊字符
這樣生成的密碼:
- 隨機(jī)性強(qiáng)
- 適合測試 / 內(nèi)部使用
3、 創(chuàng)建用戶
sudo useradd -m "$username"
參數(shù)說明:
-m:自動創(chuàng)建/home/username目錄- 需要 root 權(quán)限
4、 設(shè)置密碼(推薦方式)
echo "$username:$password" | sudo chpasswd
相比 passwd 交互式方式,chpasswd 非常適合腳本自動化。
5、 保存賬號信息
echo "$username:$password" >> "$output_file"
最終生成的 user_credentials.txt 內(nèi)容類似:
user1:KjS82jds9As
user2:9DJkS8sd2Lm
...
注意:該文件包含明文密碼,請妥善保管或僅用于測試環(huán)境。
四、腳本使用方法
1、 保存腳本
vi create_users.sh
粘貼腳本內(nèi)容并保存。
2、 添加執(zhí)行權(quán)限
chmod +x create_users.sh
3、 執(zhí)行腳本
sudo ./create_users.sh
必須使用 sudo 或 root 用戶運(yùn)行。
五、補(bǔ)充:使用 openssl 生成加密密碼
如果你只想生成 加密后的密碼字符串(例如用于 /etc/shadow 或配置文件),可以使用:
openssl passwd -1 "123456"
示例輸出:
$1$R9E3fH2J$gXGk3L1ZC8mZkYQ5DqGJb/
說明:
-1:使用 MD5-crypt"123456":原始明文密碼
實(shí)際腳本中更推薦使用 chpasswd,系統(tǒng)會自動選擇合適的加密算法。
六、安全建議
1.僅在測試或內(nèi)部環(huán)境使用明文密碼文件
2.不要在生產(chǎn)環(huán)境長期保存明文密碼
3.用完后建議刪除:
shred -u user_credentials.txt
4.如果是服務(wù)器環(huán)境,建議結(jié)合:
- SSH key 登錄
- 強(qiáng)制首次登錄修改密碼
七、總結(jié)
通過 Bash 腳本 + Linux 原生命令,你可以:
- 快速批量創(chuàng)建用戶
- 自動生成安全隨機(jī)密碼
- 方便地導(dǎo)出賬號信息
這是一個(gè)非常實(shí)用的 Linux 運(yùn)維自動化小技巧,適合新服務(wù)器初始化或測試環(huán)境搭建。
到此這篇關(guān)于shell腳本結(jié)合Linux命令實(shí)現(xiàn)批量創(chuàng)建用戶并生成隨機(jī)密碼的文章就介紹到這了,更多相關(guān)shell批量創(chuàng)建用戶內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux shell下30個(gè)有趣的命令和提示(推薦)
這些是我收集了多年的Linux shell的30個(gè)有趣的命令和提示。特此分享到腳本之家平臺,供大家參考2017-10-10
shell之定時(shí)周期性執(zhí)行腳本的方法示例
這篇文章主要介紹了shell之定時(shí)周期性執(zhí)行腳本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
linux下定時(shí)執(zhí)行任務(wù)的方法及crontab 用法說明(收集整理)
這篇文章主要介紹了 linux下定時(shí)執(zhí)行任務(wù)的方法及crontab 用法說明(收集整理),需要的朋友可以參考下2017-04-04

