shell批量添加新用戶的腳本
更新時間:2025年06月09日 10:40:22 作者:開挖掘機上班
寫一個腳本,實現(xiàn)批量添加20個用戶,用戶名為user1-20,密碼為user后面跟5個隨機字符,這篇文章主要介紹了shell批量添加新用戶的腳本,需要的朋友可以參考下
批量加5個新用戶,以u1到u5命名,并統(tǒng)一加一個新組,組名為class,統(tǒng)一改密碼為123
#腳本1
#!/bin/bash
#判斷class組是否存在
grep -w class /etc/group &>/dev/null
[ $? -ne 0 ] && groupadd class
#批量創(chuàng)建5個用戶
for i in {1..5}
do
useradd -G class u$i
echo 123|passwd --stdin u$i
done
#腳本2
#!/bin/bash
#判斷class組是否存在
cut -d: -f1 /etc/group|grep -w class &>/dev/null
[ $? -ne 0 ] && groupadd class
#循環(huán)增加用戶,循環(huán)次數(shù)5次,for循環(huán),給用戶設(shè)定密碼
for ((i=1;i<=5;i++))
do
useradd u$i -G class
echo 123|passwd --stdin u$i
done
#腳本3
#!/bin/bash
grep -w class /etc/group &>/dev/null
test $? -ne 0 && groupadd class
或者
groupadd class &>/dev/null
for ((i=1;i<=5;i++))
do
useradd -G class u$i && echo 123|passwd --stdin u$i
done寫一個腳本,實現(xiàn)批量添加20個用戶,用戶名為user1-20,密碼為user后面跟5個隨機字符
腳本1
#!/bin/bash
for i in {1..20}; do
username="user$i"
password="user$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 1)"
useradd "$username" && echo "$username:$password" | chpasswd
echo "用戶 $username 添加成功,密碼: $password"
done
功能說明:
循環(huán)創(chuàng)建user1到user20,密碼格式為user+5位隨機字符(字母數(shù)字組合)
使用/dev/urandom生成隨機字符串,tr過濾非字母數(shù)字字符
chpasswd安全設(shè)置密碼,避免明文密碼出現(xiàn)在歷史記錄中
使用方法:
保存為add_users.sh
添加執(zhí)行權(quán)限:chmod +x add_users.sh
需root權(quán)限運行:sudo ./add_users.sh
注意事項:
若用戶已存在,腳本會報錯但繼續(xù)執(zhí)行后續(xù)用戶
隨機密碼會直接打印到終端,生產(chǎn)環(huán)境建議重定向到安全文件腳本2
以下是一個完整的 Shell 腳本,用于批量創(chuàng)建 20 個用戶,用戶名從 user1 到 user20,密碼為 user 后加上 5 個隨機字符。腳本還提供了錯誤處理功能以確保用戶不會被重復(fù)創(chuàng)建,并將用戶名和密碼記錄到文件 userinfo.txt 中
#!/bin/bash
# 定義變量
USERADD="/usr/sbin/useradd"
PASSWD="/usr/bin/passwd"
CUT="/bin/cut"
INFO_FILE="userinfo.txt"
# 清空或創(chuàng)建用戶信息文件
> "$INFO_FILE"
# 循環(huán)創(chuàng)建用戶
for i in {1..20}; do
username="user$i"
# 使用 /dev/urandom 生成隨機字符串并截取前 5 個字符作為密碼的一部分
password="user$(cat /dev/urandom | $CUT -c-5 | head -c 5)"[^3]
# 嘗試添加用戶
if ! id "$username" &>/dev/null; then
$USERADD "$username" && echo "$password" | $PASSWD --stdin "$username" &>/dev/null
echo "$username:$password" >> "$INFO_FILE"
echo "User $username created successfully."
else
echo "User $username already exists. Skipping..."
fi
done
echo "All users processed. User information saved to $INFO_FILE."
腳本說明
用戶檢查:在創(chuàng)建用戶之前,使用 id 命令檢查用戶是否已存在。如果用戶已存在,則跳過該用戶的創(chuàng)建過程。
隨機密碼生成:通過 /dev/urandom 和 cut 命令生成 5 個隨機字符,并將其附加到字符串 user 后面以形成密碼。
非交互式密碼設(shè)置:使用 echo "$password" | passwd --stdin "$username" 命令以非交互方式為用戶設(shè)置密碼。
記錄用戶信息:將每個用戶的用戶名和密碼寫入文件 userinfo.txt,以便后續(xù)使用。
注意事項
確保腳本具有執(zhí)行權(quán)限??梢酝ㄟ^運行 chmod +x script_name.sh 來賦予腳本執(zhí)行權(quán)限。
運行腳本時需要超級用戶權(quán)限(即 root 用戶),因為 useradd 和 passwd 命令需要這些權(quán)限。
如果系統(tǒng)中已經(jīng)存在部分用戶(如 user1 到 user20 的范圍中有重復(fù)用戶),腳本會自動跳過這些用戶并繼續(xù)處理剩余的用戶到此這篇關(guān)于shell批量添加新用戶的文章就介紹到這了,更多相關(guān)shell批量添加內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

