bash腳本學習--批量增刪用戶

最近進度有點慢,跟着《私房菜》學習進行到了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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章