最近進度有點慢,跟着《私房菜》學習進行到了Linux ACL權限設置這一章節,由於書中經常有加賬號和刪除賬號的操作,就覺得太繁瑣了,正好可以拿這個來繼續鞏固下前一章腳本編寫的基礎。話不多說進入正題。
本腳本實現的功能是根據用戶輸入的選項來選擇是“添加”還是“刪除”賬號,以下是腳本代碼。
#!/bin/bash #Program: # This program will batch add accounts. #History: #2016/04/14 MG First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo "Input your operation:" #選項說明 echo "1.Option 1 is add user account." echo "2.Option 2 is del user account." echo "" while [ -z "$op" ] #進行判斷用戶是否有輸入 do read -p "Enter your operation: " op #用戶輸入選項 done case $op in #對操作進行判斷 "1") while [ -z "$usr" ] #判斷用戶輸入賬號名是否爲空 do read -p "Input your user account: " usr done read -p "input add quantity: " nu chg=$(cut -d: -f1 /etc/passwd |grep $usr) #搜索系統是否有該賬號 if [ "$chg" == "" ];then read -p "input add quantity: " nu #輸入要創建的賬號 nu=${nu:-1} #如果用戶沒輸入則默認爲一個 for (( i=1;i<=$nu;i++ )) do # echo $usr$i useradd -c "$usr$i" $usr$i echo "$usr$i"|passwd --stdin $usr$i # 批量爲用戶添加密碼,不顯示添加後的回顯信息 chage -d 0 $usr$i #強制新用戶第一次登陸時更改密碼 done echo "$nu accounts added successfully!" else echo "The user $usr account is exist." exit 1 fi ;; "2") read -p "Enter your account: " users if [ ! -z "$users" ];then usr=$(grep $users /etc/passwd |cut -d: -f1) for user in $usr do # echo $user read -p "Are you sure to del this account?" yn if [ "$yn" == "y" -o "$yn" == "Y" ];then userdel -r $user && echo "$user accont deleted successfully!"|| echo "Delete failed!" else echo "You have cancel this operation." exit 0 fi done fi ;; esac
該腳本還是不夠完善,比如創建賬號的時候如果之中存在了“test"賬號,那就無法以test爲開頭創建test2等等賬號了,還有一些其他的問題等之後再慢慢補充吧,每天寫一點就會有進步。
(PS. 英文太差湊活看吧,都是中式英語o(╯□╰)o)