6>>manage-account#!/bin/bash##Delete_user - Automates the 4 steps to remove an account#################################################################Define Functions################################################################function get_answer {#unset ANSWERASK_COUNT=0#while [ -z "$ANSWER" ]#While no answer is given,keeping asking......doASK_COUNT=$[ $ASK_COUNT + 1 ]#case $ASK_COUNT in #If user gives no answer in time allotted2)echoecho "Please answer the question."echo;;3)echo echo "One last try...please answer the question."echo;;4)echo echo "Since you refuse to answer the question..."echo "exiting PRogram."#exit;;esac#echo#if [ -n "$LINE2" ]then #Print 2 linesecho "$LINE1"echo -e $LINE2"\c"# "-e" Deal with paticualar character,'\c' is oppsite with '\n'.else#print 1 lineecho -e $LINE1"\c"fi##Allow 60 seconds to answer before time-outread -t 60 ANSWERdone#Do a little variable clean-upunset LINE1unset LINE2#}#End of get_answer function.###########################################################################function process_answer {#unset ANSWERecho "process_answer[y/n]?"read -t 30 ANSWERcase $ANSWER iny|Y|YES|yes|yEs|yeS|YEs|yES|Yes|YeS)#If user answer "yes" ,do nothing.;;*)#If user answers anything but "yes",exit scriptecho echo $EXIT_LINE1echo $EXIT_LINE2echo exit;;esac##Do a little variable clean-up#unset EXIT_LINE1unset EXIT_LINE2#}##End of process_answer function############################################################################End of Function Definitions############################################################################################# Mani Scripts ################################################################################################################################Get name of User Accout to check#echo "Step #1 - Determine User Accout name to Delete "echo LINE1="Please enter the username of the user"LINE2="account you wish to delete from system"get_answerUSER_ACCOUNT=$ANSWER##Call process_answer function#if user answers anything but "yes" ,exit script#EXIT_LINE1="Because the account,$USER_ACCOUNT is not"EXIT_LINE2="the one you wish to delete,we are leaving the script..."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 ] #If the account is not found,exit script.then echoecho "Account ,$USER_ACOUNT,not found."echo "leaving the script..."echoexitfi#echo echo "I found this record:"echo $USER_ACCOUNT_RECORDecho#LINE1="Is this the correct User Account?[y/n]"get_answer###Call process_answer function:#if user answer anything but "yes" .exit script#EXIT_LINE1="Because 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 use account#echo echo "Step #2 - Find process on system belonging to user Account"echo echo "$USER_ACCOUNT has the following processes running:"echo#ps -u $USER_ACCOUNT #List user processes runningcase $? in1)#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.#unset ANSWERLINE1="Would you like me to kill the processes(es)?[y/n]"get_answer#case $ANSWER iny|Y|yes|Yes|yEs|yeS|YEs|YeS|yES|YES)#if user answer 'yes'.#echo##Clean-up temp file upon signalstrap "rm $USER_ACCOUNT_Running_Process.rpt" SIGTERM SIGINT SIGQUIT##List user processes runningps -u $USER_ACCOUNT_Running_Process.rpt#exec < $USER_ACCOUNT_Runnning_Process.rpt#make report Std Input#read USER_PROCESS_REC#First record will be blankread USER_PROCESS_REC#while [ $? -eq 0 ]do#obtain PIDUSER_PID=$(echo $USER_PROCESS_REC | cut -d " " -f1)# output a line of characters,'cut -d "," -f2' will select second # part which splited by ",".Is same to" gawk '{print $2}' ".kill -9 $USER_PIDecho "Killed process $USER_PID"read USER_PROCESS_RECdone#echorm $USER_ACCOUNT_Running_Process.rpt # Remove temp report;;*)#If user answers anything but "yes",do not killecho echo "Will not kill the process(es)."echo;;esac;;esac########################################################################################## Create a report of all files owned by User Account#echoecho "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# How to use "find"##There don't deal with $USER's file.echoecho "Report is conplete"echo "Namp of report:$REPORT_FILE"echo "Location of report:`pwd`"echo############################################################################################# Remove User Account echoecho "Step #4 - Romove user account"echoLINE1="Do you wish to remove $User_Account's account from system?[y/n]"get_answer## Call process_answer function:#if user answer anything but "yes" ,exit script#EXIT_LINE1="Since you do not wish to remove the user account."EXIT_LINE2="$USER_ACCOUNT at this time ,exiting the script..."process_answer#userdel $USER_ACCOUNT#delete user accountecho echo "User account $USER_ACCOUNT has been removed"echo ###END