manage account
#!/bin/bash
#
#Delete_user - Automates the steps to remove an account
#
###############################################################
#Define Functions
#
###############################################################
function get_answer {
#
unset ANSWER
ASK_COUNT=
#
while [ -z "$ANSWER" ] #While no answer is given,keeping asking......
do
ASK_COUNT=$[ $ASK_COUNT + ]
#
case $ASK_COUNT in #If user gives no answer in time allotted
)
echo
echo "Please answer the question."
echo
;;
)
echo
echo "One last try...please answer the question."
echo
;;
)
echo
echo "Since you refuse to answer the question..."
echo "exiting program."
#
exit
;;
esac
#
echo
#
if [ -n "$LINE2" ]
lines
echo "$LINE1"
echo -e $LINE2"\c" # "-e" Deal with paticualar character,'\c' is oppsite with '\n'.
line
echo -e $LINE1"\c"
fi
#
# Allow seconds to answer before time-out
read -t 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 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 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
) #No processes running for this user account
#
echo "There are no processes for this account currently running."
echo
;;
) #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
#
]
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}' ".
$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"
#
#
>/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
manage account的更多相关文章
- Web API 入门指南 - 闲话安全
Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(3)修改资料、修改密码
在上一篇博客中实现了用户的注销和登录,其实代码里落了点东西,就是用户登录要更新最后一次登录时间和登录IP,这次补上.今天做修改资料和修改密码,TryUpdateModel是新用到的东西. 目录: AS ...
- [.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
一.引言 在当前的电子商务平台中,用户下完订单之后,然后店家会在后台看到客户下的订单,然后店家可以对客户的订单进行发货操作.此时客户会在自己的订单状态看到店家已经发货.从上面的业务逻辑可以看出,当用户 ...
- Web API 使用上安全吗?
Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...
- 【转】20个Cydia常见错误问题解决方法汇总
对于已经越狱的用户来说,经常会使用Cydia来安装一些酷炫或实用插件,但是有时候它总是会出现一些问题,以下收集了在Cydia经常遇到的问题,供大家参考: 一.主屏幕没有 Cydia 图标 1.设备需已 ...
- 定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证
背景 在需要进行表单认证的Asp.NET 5 MVC项目被创建后,往往需要根据项目的实际需求做一系列的工作对MVC 5内建的身份验证机制(Asp.NET Identity)进行扩展和定制: Asp.N ...
- Web API 安全问题
目录 Web API 安全概览 安全隐患 1. 注入(Injection) 2. 无效认证和Session管理方式(Broken Authentication and Session Manageme ...
- Web API 入门指南 - 闲话安全(转)
Web API 安全概览 安全隐患 1. 注入(Injection) 2. 无效认证和Session管理方式(Broken Authentication and Session Management) ...
- Web API入门指南(安全)转
安全检测的工具站点:https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools Web API入门指南有些朋友回复问了些 ...
随机推荐
- javascript位运算
javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...
- solr多条件查询(二)
由于现在的 需求很变态需要N多条件的叠加,本人就用了一天时间摸索加求助,终于参透出这个q和fq的强大之处. 需求如下图,有三种关系:并且.或.不含 1.如果是或者也就是改变的q的查询条件: 2.如果是 ...
- 如何在发布博客时插入复杂公式——Open Live Writer
1.http://latex.codecogs.com/eqneditor/editor.php 2.使用Word发布
- 微信公众平台中添加qq在线聊天代码
微信公众平台是个不错的媒体,可以和你的小伙伴们即时交流,但你的小伙伴们是用手机上的微信,打字自然就慢了:有人说用微信网页版,那个也不习惯,再说也不一定所有人都知道网页版微信.(2014.01.22更新 ...
- Reflect(欧拉函数)
Reflect Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- 【PHP面向对象(OOP)编程入门教程】7.特殊的引用”$this“的使用
现在我们知道了如何访问对象中的成员,是通过”对象->成员”的方式访问的,这是在对象的外部去访问对象中成员的形式, 那么如果我想在对象的内部,让对象里的方法访问本对象的属性, 或是对象中的方法去调 ...
- 【C语言入门教程】5.3 函数的调用 与 参数
函数通过调用获得程序的控制权,函数的参数是调用者与函数的数据接口.函数可以定义一个或多个参数,也可以省略参数,调用时将与参数的数据类型相匹配的数据置于参数列表中,即可在函数体内使用.参数的调用有多种形 ...
- linux下svn命令使用大全
最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1.将文件checkout到本地目录 svn checkout path(path是服务器 ...
- 雪峰配置的nginx
- iOS 简单音乐播放器 界面搭建
如图搭建一个音乐播放器界面,具备以下几个简单功能: 1,界面协调,整洁. 2,点击播放,控制进度条. 3.三收藏歌曲,点击收藏,心形收藏标志颜色加深. 4,左右按钮,切换歌曲图片和标题. 5,点击中间 ...