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 文件是否存在 [ ...
随机推荐
- PNG文件格式
PNG文件的组成 一个PNG文件可以看作是由多个数据块(chunk)部分组成,如同积木一样,一个数据块就是一个小积木,不同类型的积木组合搭建成了我们的PNG图像. PNG图像至少由文件署名域和三个关键 ...
- memcache、mongodb、redis的对比区别
>>Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境 ...
- rabbitmq一个连接多个信道channel
https://www.cnblogs.com/eleven24/p/10326718.html
- python bezier 曲线
1.手写bezier公式,生成bezier代码, 如果给的点数过多,则会生成一半bezier曲线,剩下的一半就需要进行拼接: import numpy as np import matplotlib. ...
- Java8使用实现Runnable接口方式创建新线程的方法
环境介绍 JDK版本:1.8 开发架构:spring boot 2.x 日志:slf4j 实现步骤 Runnable接口中只有一个run()方法,它是非Thread类子类的类提供的一种激活方式.一个类 ...
- swagger2 官网配置
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2& ...
- 69、schema的相关方法
public class SObjectSchema { public void testSchema(){ //获取SObject的token //1.先获取所有token,然后通过key获取需要的 ...
- 编译Android系统源码和内核源码
[日期:2016-01-11] 来源:Linux社区 作者:jiangwei [字体:大 中 小] 把我之前编译Android系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看 ...
- CodeForces - 841B-Godsend-思维
Leha somehow found an array consisting of n integers. Looking at it, he came up with a task. Two pla ...
- git和svn的比较
当前的市场上主流的两种项目开发版本控制软件就是Git和SVN,那么这二者到底有什么区别呢? 在我们公司,其实两个都用,跟对个人体验,我觉得两者差不多,都是进行代码的版本管理. 我觉得1.由于我是实习生 ...