[root@shell /scripts]# cat for-11.sh
#!/bin/bash
for i in $(seq 20 29)
do
? ? date -s "2020/02/$i"? && touch? $(date +%F).txt
? ? echo "$(date +%F).txt文件創(chuàng)建成功..............."
done
[root@shell /scripts]# sh for-11.sh
Thu Feb 20 00:00:00 CST 2020
2020-02-20.txt文件創(chuàng)建成功...............
Fri Feb 21 00:00:00 CST 2020
2020-02-21.txt文件創(chuàng)建成功...............
Sat Feb 22 00:00:00 CST 2020
2020-02-22.txt文件創(chuàng)建成功...............
Sun Feb 23 00:00:00 CST 2020
2020-02-23.txt文件創(chuàng)建成功...............
Mon Feb 24 00:00:00 CST 2020
2020-02-24.txt文件創(chuàng)建成功...............
Tue Feb 25 00:00:00 CST 2020
2020-02-25.txt文件創(chuàng)建成功...............
Wed Feb 26 00:00:00 CST 2020
2020-02-26.txt文件創(chuàng)建成功...............
Thu Feb 27 00:00:00 CST 2020
2020-02-27.txt文件創(chuàng)建成功...............
Fri Feb 28 00:00:00 CST 2020
2020-02-28.txt文件創(chuàng)建成功...............
Sat Feb 29 00:00:00 CST 2020
2020-02-29.txt文件創(chuàng)建成功...............
[root@shell /scripts]# ll
total 1004
-rw-r--r-- 1 root root? ? ? 0 2020-02-20 00:00 2020-02-20.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-21 00:00 2020-02-21.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-22 00:00 2020-02-22.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-23 00:00 2020-02-23.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-24 00:00 2020-02-24.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-25 00:00 2020-02-25.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-26 00:00 2020-02-26.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-27 00:00 2020-02-27.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-28 00:00 2020-02-28.txt
-rw-r--r-- 1 root root? ? ? 0 2020-02-29 00:00 2020-02-29.txt
2. 通過讀入文件的方式,進(jìn)行批量的創(chuàng)建用戶
[root@shell /scripts]# cat test.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
1. for循環(huán)怎么通過文件的方式取值用戶
2. 判斷用戶是否存在該系統(tǒng),存在則不進(jìn)行創(chuàng)建
3. 如果不存在,則進(jìn)行創(chuàng)建用戶
4. 將創(chuàng)建的結(jié)果顯示出來
[root@shell /scripts]# \cat for-12.sh
#!/bin/bash
for i in $(cat test.txt)
do
? ? id $i &>/dev/null
? ? if [ $? -eq 0 ];then
? ? ? ? echo "用戶${i}已經(jīng)存在無需再次創(chuàng)建!"
? ? else
? ? ? ? useradd? $i &>/dev/null
? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? echo "用戶${i}創(chuàng)建成功!"
? ? ? ? else
? ? ? ? ? ? echo "用戶${i}創(chuàng)建失敗!"
? ? ? ? fi
? ? fi
done
[root@shell /scripts]# sh for-12.sh
用戶aaaaa創(chuàng)建成功!
用戶bbbbb創(chuàng)建成功!
用戶ccccc創(chuàng)建成功!
用戶ddddd創(chuàng)建成功!
用戶eeeee創(chuàng)建成功!
[root@shell /scripts]# sh for-12.sh
用戶aaaaa已經(jīng)存在無需再次創(chuàng)建!
用戶bbbbb已經(jīng)存在無需再次創(chuàng)建!
用戶ccccc已經(jīng)存在無需再次創(chuàng)建!
用戶ddddd已經(jīng)存在無需再次創(chuàng)建!
用戶eeeee已經(jīng)存在無需再次創(chuàng)建!
[root@shell /scripts]# tail -5 /etc/passwd
aaaaa:x:1003:1003::/home/aaaaa:/bin/bash
bbbbb:x:1004:1004::/home/bbbbb:/bin/bash
ccccc:x:1005:1005::/home/ccccc:/bin/bash
ddddd:x:1006:1006::/home/ddddd:/bin/bash
eeeee:x:1007:1007::/home/eeeee:/bin/bash
3. 根據(jù)文件進(jìn)行創(chuàng)建用戶,文件內(nèi)容為:user:pass? 怎么進(jìn)行批量的創(chuàng)建用戶及設(shè)置密碼
1. for循環(huán)怎么通過文件的方式獲取用戶和密碼信息
2. 判斷用戶是否存在該系統(tǒng),存在則不進(jìn)行創(chuàng)建,也不設(shè)置密碼
3. 如果不存在,則進(jìn)行創(chuàng)建用戶并設(shè)置對(duì)應(yīng)密碼
4. 將創(chuàng)建的結(jié)果顯示出來
[root@shell /scripts]# cat user.txt
abc:rguherug
abb:rughituhg
aba:geurhguti
abd:ghiuerhgr
[root@shell /scripts]# cat for-13.sh
#!/bin/bash
for i in? $(cat user.txt)
do
? ? User=$(echo $i|awk -F: '{print $1}')
? ? Pass=$(echo $i|awk -F: '{print $2}')
? ? id $User &>/dev/null
? ? if [ $? -eq 0 ];then
? ? ? ? echo "用戶${User}已經(jīng)存在!無需再次創(chuàng)建!"
? ? else
? ? ? ? useradd $User &>/dev/null && echo $Pass |passwd --stdin $User? &>/dev/null
? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? echo "用戶${User}創(chuàng)建成功!密碼也設(shè)置成功!"
? ? ? ? else
? ? ? ? ? ? echo "用戶${User}創(chuàng)建失敗!"
? ? ? ? fi
? ? fi
done
[root@shell /scripts]# sh for-13.sh
用戶abc創(chuàng)建成功!密碼也設(shè)置成功!
用戶abb創(chuàng)建成功!密碼也設(shè)置成功!
用戶aba創(chuàng)建成功!密碼也設(shè)置成功!
用戶abd創(chuàng)建成功!密碼也設(shè)置成功!
[root@shell /scripts]# sh for-13.sh
用戶abc已經(jīng)存在!無需再次創(chuàng)建!
用戶abb已經(jīng)存在!無需再次創(chuàng)建!
用戶aba已經(jīng)存在!無需再次創(chuàng)建!
用戶abd已經(jīng)存在!無需再次創(chuàng)建!
4. 批量創(chuàng)建用戶,首先執(zhí)行腳本時(shí),輸入用戶的前綴,前綴必須是字母,提示用戶輸入用戶的后綴,即為創(chuàng)建用戶的數(shù)量,后綴必須為整數(shù)。進(jìn)行創(chuàng)建用戶如: oldboy1? oldboy2? ... oldboy10
前綴為: oldboy
后綴為: 10
oldboy1? oldboy2? ... oldboy10
[root@shell /scripts]# cat for-14.sh
#!/bin/bash
read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):" Qz
if [[ ! $Qz =~ ^[a-Z]+$ ]];then
? ? echo "你輸入的前綴不是由字母組成的!"
? ? exit
fi
read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):" Hz
if [[ ! $Hz =~ ^[0-9]+$ ]];then
? ? echo "你輸入創(chuàng)建用戶的數(shù)量不是整數(shù)!"
? ? exit
fi
echo "你接下來要?jiǎng)?chuàng)建的用戶為${Qz}1..${Qz}${Hz}。"
read -p "你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:" Qr
case $Qr in
? ? Yes|Y|y|yes)
? ? ? ? ? ? for i in $(seq $Hz)
? ? ? ? ? ? do
? ? ? ? ? ? ? ? User=${Qz}${i}
? ? ? ? ? ? ? ? id $User &>/dev/null
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? echo "用戶${User}已經(jīng)存在!無需再次創(chuàng)建!"
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? useradd $User &>/dev/null
? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建成功!"
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建失?。?
? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? done
? ? ? ? ? ? ;;
? ? No|N|n|no)
? ? ? ? ? ? echo "你選擇不創(chuàng)建用戶!你想好了再創(chuàng)建!"
? ? ? ? ? ? exit
? ? ? ? ? ? ;;
? ? *)
? ? ? ? ? ? echo "請(qǐng)按照要求輸入[Yes|No]。"
? ? ? ? ? ? exit
esac
[root@shell /scripts]# sh for-14.sh
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):aaa
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5
你接下來要?jiǎng)?chuàng)建的用戶為aaa1..aaa5。
你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:n
你選擇不創(chuàng)建用戶!你想好了再創(chuàng)建!
[root@shell /scripts]# sh for-14.sh
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):aaa
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5
你接下來要?jiǎng)?chuàng)建的用戶為aaa1..aaa5。
你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:y
用戶aaa1創(chuàng)建成功!
用戶aaa2創(chuàng)建成功!
用戶aaa3創(chuàng)建成功!
用戶aaa4創(chuàng)建成功!
用戶aaa5創(chuàng)建成功!
[root@shell /scripts]# sh for-14.sh
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):aaa
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5
你接下來要?jiǎng)?chuàng)建的用戶為aaa1..aaa5。
你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:yes
用戶aaa1已經(jīng)存在!無需再次創(chuàng)建!
用戶aaa2已經(jīng)存在!無需再次創(chuàng)建!
用戶aaa3已經(jīng)存在!無需再次創(chuàng)建!
用戶aaa4已經(jīng)存在!無需再次創(chuàng)建!
用戶aaa5已經(jīng)存在!無需再次創(chuàng)建!
[root@shell /scripts]# tail -5 /etc/passwd
aaa1:x:1013:1013::/home/aaa1:/bin/bash
aaa2:x:1014:1014::/home/aaa2:/bin/bash
aaa3:x:1015:1015::/home/aaa3:/bin/bash
aaa4:x:1016:1016::/home/aaa4:/bin/bash
aaa5:x:1017:1017::/home/aaa5:/bin/bash
[root@shell /scripts]#
5. 批量創(chuàng)建用戶,必須是超級(jí)管理員root才用權(quán)限執(zhí)行該腳本,首先執(zhí)行腳本時(shí),輸入用戶的前綴,前綴必須是字母,提示用戶輸入用戶的后綴,即為創(chuàng)建用戶的數(shù)量,后綴必須為整數(shù)。進(jìn)行創(chuàng)建用戶如: oldboy1? oldboy2? ... oldboy10,創(chuàng)建完用戶,并給其設(shè)置10位隨機(jī)密碼,將用戶以 User:$user? ? Pass:$pass? 統(tǒng)一保存到一個(gè)文件中,此密碼文件的權(quán)限為400.
[root@shell /scripts]# cat for-15.sh
#!/bin/bash
#判斷當(dāng)前用戶是否為超級(jí)管理員
if [ ! $USER == "root" -a ! $UID -eq 0 ];then
? ? echo "該用戶${USER}對(duì)此腳本${0}沒有執(zhí)行權(quán)限!"
? ? exit
fi
read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):" Qz
if [[ ! $Qz =~ ^[a-Z]+$ ]];then
? ? echo "你輸入的前綴不是由字母組成的!"
? ? exit
fi
read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):" Hz
if [[ ! $Hz =~ ^[0-9]+$ ]];then
? ? echo "你輸入創(chuàng)建用戶的數(shù)量不是整數(shù)!"
? ? exit
fi
echo "你接下來要?jiǎng)?chuàng)建的用戶為${Qz}1..${Qz}${Hz}。"
read -p "你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:" Qr
case $Qr in
? ? Yes|Y|y|yes)
? ? ? ? ? ? for i in $(seq $Hz)
? ? ? ? ? ? do
? ? ? ? ? ? ? ? User=${Qz}${i}
? ? ? ? ? ? ? ? id $User &>/dev/null
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? echo "用戶${User}已經(jīng)存在!無需再次創(chuàng)建!"
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? Pass=$(echo $RANDOM | md5sum |cut -c 1-10)
? ? ? ? ? ? ? ? ? ? useradd $User &>/dev/null && echo $Pass |passwd --stdin $User &>/dev/null
? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建成功!密碼也設(shè)置成功!"
? ? ? ? ? ? ? ? ? ? ? ? echo -e "User:${User}\tPass:$Pass" >>pass.txt && chmod 400 pass.txt
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建失??!"
? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? done
? ? ? ? ? ? ;;
? ? No|N|n|no)
? ? ? ? ? ? echo "你選擇不創(chuàng)建用戶!你想好了再創(chuàng)建!"
? ? ? ? ? ? exit
? ? ? ? ? ? ;;
? ? *)
? ? ? ? ? ? echo "請(qǐng)按照要求輸入[Yes|No]。"
? ? ? ? ? ? exit
esac
[root@shell /scripts]# sh for-15.sh
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):bbb
請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5
你接下來要?jiǎng)?chuàng)建的用戶為bbb1..bbb5。
你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:y
用戶bbb1創(chuàng)建成功!密碼也設(shè)置成功!
用戶bbb2創(chuàng)建成功!密碼也設(shè)置成功!
用戶bbb3創(chuàng)建成功!密碼也設(shè)置成功!
用戶bbb4創(chuàng)建成功!密碼也設(shè)置成功!
用戶bbb5創(chuàng)建成功!密碼也設(shè)置成功!
[root@shell /scripts]# ll pass.txt
-r-------- 1 root root 150 2020-02-29 01:59 pass.txt
[root@shell /scripts]# cat pass.txt
User:bbb1 Pass:c6fc663545
User:bbb2 Pass:7ec0185fb0
User:bbb3 Pass:b080263990
User:bbb4 Pass:8abefa491d
User:bbb5 Pass:465d97a62f
6. 批量刪除用戶,按照之前創(chuàng)建的用戶進(jìn)行刪除。輸入要?jiǎng)h除用戶的前綴,必須是字母,再輸入要?jiǎng)h除用戶的數(shù)量,必須是整數(shù),再次提示用戶是否確認(rèn)刪除這些用戶。
1. 當(dāng)用戶存在時(shí),才可以進(jìn)行刪除操作
2. 用戶不存在時(shí),則進(jìn)行不刪除操作
[root@shell /scripts]# cat for-16.sh
#!/bin/bash
if [ ! $USER == "root" -a ! $UID -eq 0 ];then
? ? echo "該用戶${USER}對(duì)此腳本${0}沒有執(zhí)行權(quán)限!"
? ? exit
fi
read -p "請(qǐng)輸入你要?jiǎng)h除用戶的前綴(必須是字母):" Qz
if [[ ! $Qz =~ ^[a-Z]+$ ]];then
? ? echo "你輸入的前綴不是全部由字母組成!"
? ? exit
fi
read -p "請(qǐng)輸入你要?jiǎng)h除用戶的數(shù)量(必須是整數(shù)):" Num
if [[ ! $Num =~ ^[0-9]+$ ]];then
? ? echo "你輸入的不是一個(gè)整數(shù)!"
? ? exit
fi
echo "你接下來要?jiǎng)h除的用戶為:${Qz}1..${Qz}$Num"
read -p "你是否確認(rèn)刪除以上用戶[Yes|No]:" Qr
case $Qr in
? ? ? ? Yes|y|Y|yes)
? ? ? ? ? ? for i in $(seq $Num)
? ? ? ? ? ? do
? ? ? ? ? ? ? ? User=${Qz}$i
? ? ? ? ? ? ? ? id $User &>/dev/null
? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? userdel -r $User &>/dev/null
? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then
? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}刪除成功!"
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}刪除失?。?
? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? echo "用戶${User}不存在于該系統(tǒng)!無法進(jìn)行刪除操作!"
? ? ? ? ? ? ? ? fi
? ? ? ? ? ? done
? ? ? ? ? ? ;;
? ? ? ? No|N|no|n)
? ? ? ? ? ? echo "你選擇不刪除這些用戶!"
? ? ? ? ? ? exit
? ? ? ? ? ? ;;
? ? ? ? *)
? ? ? ? ? ? echo "請(qǐng)按照要求輸入!"
? ? ? ? ? ? exit
esac
[root@shell /scripts]# sh for-16.sh
請(qǐng)輸入你要?jiǎng)h除用戶的前綴(必須是字母):aaa
請(qǐng)輸入你要?jiǎng)h除用戶的數(shù)量(必須是整數(shù)):5
你接下來要?jiǎng)h除的用戶為:aaa1..aaa5
你是否確認(rèn)刪除以上用戶[Yes|No]:n
你選擇不刪除這些用戶!
[root@shell /scripts]# sh for-16.sh
請(qǐng)輸入你要?jiǎng)h除用戶的前綴(必須是字母):aaa
請(qǐng)輸入你要?jiǎng)h除用戶的數(shù)量(必須是整數(shù)):5
你接下來要?jiǎng)h除的用戶為:aaa1..aaa5
你是否確認(rèn)刪除以上用戶[Yes|No]:y
用戶aaa1刪除成功!
用戶aaa2刪除成功!
用戶aaa3刪除成功!
用戶aaa4刪除成功!
用戶aaa5刪除成功!