shell脚本之用户管理
#!/usr/bin/env bash ###############################
# 脚本名称 : userManager.sh #
# 脚本功能 : 账号管理 #
# 脚本参数 : 无 #
# 创建时间 : 2019-07-25 #
# 作 者 : Mr.Guo #
# 版 本 : v1.0 #
############################### # 提示信息 []<-()
note_message(){
cat <<EOF
--------用户管理程序-----------
1.创建用户
2.删除用户
3.锁定用户
4.解锁用户
5.退出脚本
EOF
} # 创建账户 []<-(user:string,passwd:string)
create_user(){
user="$1"
pwd="$2" useradd "$user" # 添加账户
echo "$pwd" | passwd --stdin "$user" # 设置密码 if [[ "$?" == 0 ]];
then
echo "用户已经创建成功"
exit
fi
} # 删除账户 []<-(user:string)
delete_user(){
user="$1" userdel "$user" # 删除用户 if [[ "$?" == 0 ]];
then
echo "已经删除${user}用户"
fi
} # 锁定账户 []<-(user:string)
lock_user(){
user="$1"
STAT=$(passwd -S "$user" | awk '{print $2}') if [[ "$STAT" == "PS" ]];
then
passwd -l "$user"
fi if [[ "$STAT" == "LK" ]];
then
echo "用户 $user 已经锁定"
exit
fi
} # 解锁账户 []<-(user:string)
unlock_user(){
user="$1"
STAT=$(passwd -S "$user" | awk '{print $2}') if [[ "$STAT" == "LK" ]];
then
passwd -u "$user"
fi if [[ "$STAT" == "PS" ]];
then
echo "已解锁账户 $user"
exit
fi
} # 退出脚本 []<-()
exit_script(){
read -p "是否退出脚本(yes)" tu if [[ "$tu" == "yes" ]];
then
exit
fi
} # 主函数 []<-()
main(){
note_message # 提示信息 read -p "请输入操作选择(1-5):" sn case "$sn" in
1)
read -p "请输入需要创建的用户名:" uname
read -p "请给该账户设置一个密码:" passwd
create_user "$uname" "$passwd"
;;
2)
read -p "请输入需要删除的用户名:" uname
delete_user "$uname"
;;
3)
read -p "请输入需要锁定的用户名:" uname
lock_user "$uname"
;;
4)
read -p "请输入需要解锁的用户名:" uname
unlock_user "$uname"
;;
5)
printf "退出脚本\n"
exit_script
;;
esac
} # 函数运行
main
shell脚本之用户管理的更多相关文章
- Android随笔之——用shell脚本模拟用户按键、触摸操作
之前写过两篇关于Android中模拟用户操作的博客(其实用一篇是转载的),现在就来讲讲用shell脚本来模拟用户按键操作.本次的目标是用shell脚本打开微信并在其搜索框中搜索相关内容. 本文的模拟功 ...
- shell复习笔记----用户管理
$ who 可以知道系统上有多少登陆 $who |wc -l 计算用户个数 注意:|是管道符号,可以在两个程序之间建立管道(pipeline):who 的输出,成了 wc 的输入, wc 所列出 ...
- 使用shell脚本添加用户
该文演示如何使用shell脚本完成添加用户,首先进行一个判断,如果用户存在,提示该用户已经存在,否则进行添加新的用户. 示例代码如下: #!/bin/bash grep_user() { R=`gre ...
- Shell 脚本处理用户输入
传递参数 跟踪参数 移动变量 处理选项 将选项标准化 获得用户的输入 bash shell提供了一些不同的方法来从用户处获取数据,包括命令行参数(添加在命令后数据),命令行选项(可以修改命令行为的单个 ...
- Shell脚本实现用户数据导入
#输入:固定格式的用户数据user.sql #处理:循环读取user.sql中的每行(每行对应一条用户数据),依次调用curl命令将用户插入BearyChat #输出:执行结果输出到日志文件outlo ...
- 《怎样实现通过shell脚本将用户踢出系统》
下面是一个将用户踢出系统的脚本: #!/bin/bashread -p "input your username " userps aux | grep "^$user& ...
- 使用shell脚本监控用户登陆服务器并发送提示信息给微信
1.需要在/etc/ssh/目录下面创建一个名为sshrc的文件,执行权限可给可不给,那么在有人通过ssh远程登录这台服务器的时候,这段脚本就会被执行 #!/bin/bash ###V1---### ...
- shell学习之用户管理和文件属性
1.组和用户的添加 添加组: groupadd [-g gid [-o]] [-r] [-f] group 示例: groupadd -g testgoup1 #添加组testgroup1,同时指定g ...
- 编写SHELL脚本--判断用户的参数
测试语句格式: [ 条件表达式 ] 常见的几种形式: [ -d /etc ] 判断/etc是不是一个目录类型, [ -e /etc/php.ini ] 判断/etc/php.ini 文件是否存在 [ ...
随机推荐
- error: device unauthorized.
1 执行 adb install com.taobao.taobao_250.apk 报错 2 先看手机是不是未授权,执行命令之后,手机回弹出授权信息,点击确认就行了
- 力扣—— Swap Nodes in Pairs(两两交换链表中的节点) python实现
题目描述: 中文: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, ...
- Redis面试题大全含答案
Redis面试题大全含答案 Redis面试题大全含答案 1.什么是Redis?答:Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...
- Node.js的适用场景?
1).实时应用:如在线聊天,实时通知推送等等(如socket.io) 2).分布式应用:通过高效的并行I/O使用已有的数据 3).工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形 ...
- java命令-jps
jps命令,查看当前用户所有java进程pid 可进入/tmp/hsperfdata_xxx(登录用户名)路径下,可查看当前用户下所有的Java进程.jps.jconsole.jvisualvm等工具 ...
- jquery 下拉框左右选择
html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- SpringMvc返回给前端数据@ResponseBody响应体【支持Ajax】
1).在Controller中写 //@ResponseBody响应体是jackson包提供的 用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格 ...
- 21.Semaphore信号量
Semaphore是一种基于计数的信号量.它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞.Semaphore可以用来构建一些对象池,资 ...
- C常量
C 常量 常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面量. 常量可以是任何的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量. 常量就像是常规的变量,只不 ...
- 大碗宽面Alpha冲刺阶段博客目录
大碗宽面Alpha冲刺阶段博客目录 一.Scrum Meeting 1. [第六周会议记录]第六周链接 2. [第七周会议记录]第七周链接 二.测试报告 [alpha阶段测试报告](博客链接) ## ...