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 文件是否存在 [ ...
随机推荐
- Educational Codeforces Round 69 E - Culture Code (最短路计数+线段树优化建图)
题意:有n个空心物品,每个物品有外部体积outi和内部体积ini,如果ini>outj,那么j就可以套在i里面.现在我们要选出n个物品的一个子集,这个子集内的k个物品全部套在一起,且剩下的物品都 ...
- linux-ftp install
ftp安装 yum install vsftpd vi /etc/vsftpd/vsftpd.conf (可以先备份,但不要放在此目录下,不然启动vsftpd的时候 也会加载其备份文件,报启动错误,因 ...
- localstorage sessionstorage和cookie的区别
基本概念 cookie:是网景公司的前雇员在1993年发明.它的主要用于保存登陆信息,比如登陆某个网站市场可以看到'记住密码’,这就是通过在cookie中存入一段辨别用户身份的数据来实现的. sess ...
- printf 输出格式设置\033[47\033[5m 与-8.8s
摘要:在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显.同样,linux C下printf还有很多其他不常见的格式化输出形式.本文主要为你盘点这些 ...
- 树莓派GPIO口驱动编写
一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...
- LayuiAdmin 滚动条设置问题解决
LayuiAdmin 滚动条设置问题解决 今天在使用LayuiAdmin(单页版),发现通过: $("html,body").animate({"scrollTop&qu ...
- Random Point in Triangle
题目链接 题意:多组输入三角形各个顶点坐标p1,p2,p3,在三角形中任取一点p,计算 期望E=max(S(p,p1,p2),max(S(p,p1,p3),S(p,p2,p3))); 思路:用随机数找 ...
- C++异常处理try、catch 没有finally
程序的错误大致可以分为三种,分别是语法错误.逻辑错误和运行时错误: 1) 语法错误在编译和链接阶段就能发现,只有 100% 符合语法规则的代码才能生成可执行程序.语法错误是最容易发现.最容易定位.最容 ...
- 用Python实现一个简单的猜数字游戏
import random number = int(random.uniform(1,10)) attempt = 0 while (attempt < 3): m = int(input(' ...
- ajax请求 Provisional headers are show
请求被阻塞就会导致Provisional headers are show 我的原因是因为数据库 修改操作未提交导致表 锁住 . 后台操作该表超时