批量刪除用戶--Shell腳本

#!/bin/bash # #User : Mobanche #Date : 2017-7-17 #Work : Delete User # ############################################# #          Define Function         # ############################################# # function get_answer { # unset ANSWER ASK_COUNT=0 # while [ -z "$ANSWER" ] do         ASK_COUNT=$[ $ASK_COUNT + 1 ] #         case $ASK_COUNT in         2)                 echo                 echo "Please answer the question"                 echo         ;;         3)                 echo                 echo "One last try ...olease answer the question"  echo         ;;         4)                 echo                 echo "Since you refuse to answer the question ...."                 echo "exiting scripts"                 echo                 exit         ;;         esac # echo #         if [  -n "$LINE2" ]         then                 echo $LINE1                 echo -e $LINE2 " \c"         else                 echo -e $LINE1" \c"         fi #################################################### #    Allow 60 seconds to answer before time-out    # ####################################################         read -t 60 ANSWER done ###################  clean up #### ################# unset LINE1 unset LINE2 } # function process_answer { # case $ANSWER in y|Y|YES|yes|Yes|yEs|yeS|YEs|yES ) ####if user answer "yes",do nothing ###### ;; *) # If user answers anything but "yes" , exit script #         echo         echo $EXIT_LINE1         echo $EXIT_LINE2         echo         exit ;; esac # ###################################################### #       Do a little variable clean-up         # ###################################################### unset EXIT_LINE1 unset EXIT_LINE2 #  } ########################################################### #              End of Function Definitions      # ########################################################### # # ########################################################## ###################   Main scripts    #################### ########################################################## # echo "Step #1 -Determine User Account name ti Delete" echo LINE1="Pleaser enter the username of the user " LINE2="Account you wash to delete from system :" get_answer USER_ACCOUNT=$ANSWER # # Double check with script user that this is the acorrect User Account # LINE1="Is $USER_ACCOUNT the user account " LINE2=" You wash to delete from the system? [y/n]" get_answer # #Call process_answer funtion : # # if user answers anything but "yes" , exit script  # EXIT_LINE1="Becase the account, $USER_ACCOUNT, is not" EXIT_LINE2="The one you wish to delete, we are leaving the scripts" process_answer # ######################################################################### # Check that USER_ACCOUNT is really an account on the system # USER_ACCOUNT_RECORD=$(cat /etc/passwd | grep -w $USER_ACCOUNT) # if [ $? -eq 1 ] then         echo         echo "Account, $USER_ACCOUNT. not fount."         echo "Leacing the script ....."         echo         exit fi # echo echo "T fount this record:" echo $USER_ACCOUNT_RECORD # LINE1="Is this the correct User Account? [y/n]" get_answer # # #Call process_answer function : #If user answers anything but "yes",exit script # EXIT_LINE1="Becauser the account,$USER_ACCOUNT,is not" EXIT_LINE2="The one you wish to delete,we are leaving the script ..." process_answer # #################################################################### #Search for any running processes that belong to the User Account # echo echo "Step #2 - Find process on system belonging to user account" echo # ps -u $USER_ACCOUNT > /dev/null # case $? in 1) #    No processes running for this User Account         echo "There are no processes for this account currently running"         echo  ;; 0) # Processes running for this User Account # Ask Script User if wants us to kill the processes #         echo "$USER_ACCOUNT has the following processes running :"         echo         ps -u $USER_ACCOUNT #         LINE1="Would you like me to kill the peocess(es)? [y/n]"         get_answer #         case $ANSWER in         y|Y|YES|yes|Yes|yEs|yeS|YEs|yES )                 echo                 echo "Killing off process(es)"                 #                 # List user process running code in variable,COMMAND_1                 COMMAND_1="ps -u $USER_ACCOUNT --no-heading"                 #                 #Create command to kill process in variable,COMMAND_3                 COMMAND_3="xargs -d \\n /usr/bin/sudo /bin/kill -9"                 #                 #Kill processes via piping commands together                 $COMMAND_1 |gawk '{print $1}' | $COMMAND_3                 #                 echo                 echo "Will not kill the process(es)"                 echo         ;;         *)                 #If user answers any                 echo                  echo "Will not kill the process(es)"                 echo         ;;         esac ;; esac # ######################################################################## # Create a report of all files owned by User Account # echo echo "Step #3 -Find files on system belonging to user account" echo echo "Creating a report of all files owned by $USER_ACCOUNT" echo echo "It is  recommended that you backup/archive these files" echo "and then do one of two things;" echo " 1) Delete the files" echo " 2) Change the files ownership to a current user account" echo echo "Please wait,This may take a while ......" # REPORT_DATE=$(date +%y%m%d) REPORT_FILE=$USER_ACCOUNT"_Files_"$REPORT_DATE".rpt" # find / -user $USER_ACCOUNT > $REPORT_FILE 2> /dev/null # echo echo "Report is complete." echo "Name of report : $REPORT_FILE" echo "Location of report :  $(pwd)" echo # ############################################################### #                                                              # #############      Remove User Account      ############### #                                                              # ############################################################### echo echo "Step #4 -Remove user account" echo # LINE1="Remove $USER_ACCOUNT's account from system? [y/n]" get_answer # #Call process_answer function : #       if user answers anything but "yes" ,exit script # EXIT_LINE1="Since youd i not wish to remove the user account" EXIT_LINE2="$USER_ACCOUNT at this time,exiting the script ..." process_answer # # userdel $USER_ACCOUNT | rm -rf /home/$USER_ACCOUNT echo echo "User account , $USER_ACCOUNT, has been removed" echo # exit
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章