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 文件是否存在 [ ...
随机推荐
- ios微信分享的兼容性问题
我微信分享采用的是: 页面初始化时动态加载js-sdk, 然后在需要分享的页面进行sdk的分享初始化 app.vue store.vue 这种方法在安卓上完全正常, 好用得令人发指, 但是!!! io ...
- shell中的空格【转载】
1.定义变量时, =号的两边不可以留空格. eg: gender=femal————right gender =femal———–wrong gender= femal———–wrong gender ...
- 【JavaWeb项目】一个众筹网站的开发(一)架构搭建
本项目是@尚硅谷相关视频的记录. 本项目使用Maven构建,工程架构如下图所示: 一.公司的公共父工程和工具类包 1.父工程 每个公司都有自己的父工程 父工程作用:对公司使用的jar包进行统一管理,别 ...
- Vue.js(七)
ES6 默认导出(只能一次)与默认导入 默认导出: // 当前文件模块为 test.js // 定义私有成员 a 和 c let a = 10 let c = 20 // 外界访问不到变量 d ,因为 ...
- easyUi-datagrid 真分页 + 工具栏添加控件
1. 新建Pager.js /** * * @param {any} el 元素 */ function showDataGrid1(el) { $(el).datagrid({ title: '分 ...
- python--有参装饰器、迭代器
有参装饰器的引入: import time import random from functools import wraps def timmer(func): @wraps(func) def w ...
- 第七周-scrum meeting
第一部分ScrumMeeting 每个人的工作:其他人:(请填写自己的任务) 成员 任务 ISSUE链接 本周已完成的工作 本周计划完成的工作 工作中遇到的困难 关玉娇 负责登录注册界面的设计与实现 ...
- Network基础(四):MAC地址表及邻居信息查看、配置接口速率及双工模式、配置交换机管理IP
一.MAC地址表及邻居信息查看 目标: 本例要求为修改计算机名并加入工作组: 查看交换机MAC地址表 查看CISCO设备邻居信息 方案: 网络拓扑,如下图所示. 步骤: 步骤一:查看交换机sw1的ma ...
- js控制ios端的input/textarea元素失去焦点时隐藏键盘
同事在测试产品时发现这样一个:“某些页面击完input框,在点空白处时,iOS设备的键盘不能隐藏并且焦点也不会失去” 带着这个问题我进行了测试,发现在安卓的设备上并没有这种问题出现. 于是写js进行测 ...
- 【Tomcat】1.Tomcat在Windows系统的安装和使用
1.下载与安装 安装Tomcat的[前提条件]是安装好JDK或者JRE(本文略过)Tomcat在Windows系统中可以通过[压缩包]或[安装包]来安装建议使用[安装包]来简化安装步骤登录官网http ...