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入门指南有些朋友回复问了些 ...
随机推荐
- MYSQL 连接数据库命令收藏
一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u root -p123 二. ...
- javascript string 函数集
JavaScript_String对象说明 string中文为"字符串"的意思,String继承自Object对象,此对象提供字符串的查找操作等函数 JavaScript字符串类型 ...
- 关于高性能Web服务的一点思考
下面这些概念对于专业做性能测试的会比较熟悉,但是对于开发人员不一定都那么清楚. 并发用户数: 某一时刻同时请求服务器的用户总数,通常我们也称并发数,并发连接数等. 吞吐率:对于web服务器来说就是每秒 ...
- SpringMVC 表单标签
引入标签库 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" ...
- linux 脚本命令匹配并获取下一行数据
三种方式: 匹配“Title”并打印出匹配行的下一行 grep -A 1 'Title' urfile awk '/Title/{getline a;print $0"\n"a ...
- 解决访问ajax.googleapis.com链接失败方法
参考文章:http://www.jianshu.com/p/690e28f7fde6 主要思路:修改hosts文件,将其网址ajax.googleapis.com指向本地服务器:本地服务器将通过aja ...
- ajax访问 aspx.cs后台
--前台$.ajax({ type: "POST", contentType: "application/json", url: "WebForm2. ...
- Redis学习笔记七:独立功能之排序
sort 命令可以对列表键.集合键或有序集合键的值进行排序.sort 命令并不修改数据库值,只是输出有序. 127.0.0.1:6379> rpush numbers 9 8 7 6 1 2 3 ...
- IE6对png图片的处理
在学习phpcms系统搜索模块的时候,发现下面这段代码: <!--[if IE 6]> <script type="text/javascript" src=&q ...
- 基于SSL协议的双向认证 - SSL协议 [1]
1 概要说明 在互联网通信方式中,目前用的最广泛的是HTTPS配合SSL和数字证书来保证传输和认证安全了. 2 详细介绍 2.1 HTTPS HTTPS全称:Hypertext Transf ...