6>>manage-account,manage-account

來源:互聯網
上載者:User

6>>manage-account,manage-account

#!/bin/bash
#
#Delete_user - Automates the 4 steps to remove an account
#
###############################################################
#Define Functions
#
###############################################################
function get_answer {
#
unset ANSWER
ASK_COUNT=0
#
while [ -z "$ANSWER" ]#While no answer is given,keeping asking......
do
ASK_COUNT=$[ $ASK_COUNT + 1 ]
#
case $ASK_COUNT in #If user gives no answer in time allotted
2)
echo
echo "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 lines
echo "$LINE1"
echo -e $LINE2"\c"# "-e" Deal with paticualar character,'\c' is oppsite with '\n'.
else#print 1 line
echo -e $LINE1"\c"
fi
#
#Allow 60 seconds to answer before time-out
read -t 60 ANSWER
done
#Do a little variable clean-up
unset LINE1
unset LINE2
#
}#End of get_answer function.
#
##########################################################################
function process_answer {
#
unset ANSWER
echo "process_answer[y/n]?"
read -t 30 ANSWER
case $ANSWER in
y|Y|YES|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 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_answer
USER_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
echo
echo "Account ,$USER_ACOUNT,not found."
echo "leaving the script..."
echo
exit
fi
#
echo
echo "I found this record:"
echo $USER_ACCOUNT_RECORD
echo
#
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 running
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.
#
unset ANSWER
LINE1="Would you like me to kill the processes(es)?[y/n]"
get_answer
#
case $ANSWER in
y|Y|yes|Yes|yEs|yeS|YEs|YeS|yES|YES)#if user answer 'yes'.
#
echo
#
#Clean-up temp file upon signals
trap "rm $USER_ACCOUNT_Running_Process.rpt" SIGTERM SIGINT SIGQUIT
#
#List user processes running
ps -u $USER_ACCOUNT_Running_Process.rpt
#
exec < $USER_ACCOUNT_Runnning_Process.rpt#make report Std Input
#
read USER_PROCESS_REC#First record will be blank
read USER_PROCESS_REC
#
while [ $? -eq 0 ]
do
#obtain PID
USER_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_PID
echo "Killed process $USER_PID"
read USER_PROCESS_REC
done
#
echo
rm $USER_ACCOUNT_Running_Process.rpt # Remove temp report
;;
*)#If user answers anything but "yes",do not kill
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# How to use "find"
##There don't deal with $USER's file.
echo
echo "Report is conplete"
echo "Namp of report:$REPORT_FILE"
echo "Location of report:`pwd`"
echo
############################################################################################
# Remove User Account
echo
echo "Step #4 - Romove user account"
echo
LINE1="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 account
echo
echo "User account $USER_ACCOUNT has been removed"
echo
#
#
#END

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.