一、创建、删除、查看用户,随机生成八位数密码

  1. #!/bin/bash
  2. #Author:yanglt
  3. #!/bin/bash
  4. #Author:yanglt
  5. #Blog:https://www.cnblogs.com/yangleitao/
  6. #Time:-- ::
  7. #Version:V1.
  8.  
  9. function wait()
  10. {
  11. echo -n '3秒后继续'
  12. for ((i=;i<;i++))
  13. do
  14. echo -n "...";sleep
  15. done
  16. echo
  17. }
  18. in_check(){
  19. expr $num1 + >/dev/null >&
  20. if [ $? -ne ];then
  21. echo "please input number"
  22. exit
  23. fi
  24. }
  25. empty_check(){
  26. if [ ! $name ];then
  27. echo "The input cannot be empty"
  28. continue
  29. fi
  30. }
  31. while true
  32. do
  33. cat<<EOF
  34. #################################
  35. .create user
  36. .delete user
  37. .query user
  38. .exit
  39. ################################
  40. EOF
  41. read -p "Please input num:" num
  42. in_check
  43. case "$num" in
  44. )
  45. read -p "please input name:" name
  46. empty_check
  47. grep -w $name /etc/passwd >/dev/null
  48. if [ $? -eq ];then
  49. echo -e "$name already exist"
  50. exit
  51. else
  52. useradd -s /bin/bash $name
  53. echo -n `mkpasswd -l ` |tee -a ${name}Passwd.txt|passwd --stdin $name
  54. echo -e "$name create successful"
  55. fi
  56. ;;
  57. )
  58. read -p "please input delete name:" name
  59. empty_check
  60. grep -w $name /etc/passwd >/dev/null
  61. if [ $? -ne ];then
  62. echo -e "$name is not exist"
  63. exit
  64. else
  65. userdel -r $name
  66. rm -rf ${name}Passwd.txt
  67. echo -e "$name delete successful"
  68. fi
  69. ;;
  70. )
  71. read -p "please input need query name:" name
  72. empty_check
  73. grep -w $name /etc/passwd >/dev/null
  74. if [ $? -eq ];then
  75. echo `grep -w $name /etc/passwd`
  76. echo -e `awk '{print "Password:",$0}' ${name}Passwd.txt`
  77. else
  78. echo -e "$name is not exist"
  79. continue
  80. fi
  81. ;;
  82. *)
  83. exit
  84. ;;
  85. esac
  86. wait
  87. done

二、用户管理改进

  1. [root@localhost ~]# cat UserManger03.sh
  2. #!/bin/bash
  3. #Author:yanglt
  4. #!/bin/bash
  5. #Author:yanglt
  6. #Blog:https://www.cnblogs.com/yangleitao/
  7. #Time:-- ::
  8. #Version:V1.
  9. . /etc/init.d/functions #调用内部函数action
  10.  
  11. function wait()
  12. {
  13. echo -n '2秒后继续'
  14. for ((i=;i<;i++))
  15. do
  16. echo -n "...";sleep
  17. done
  18. echo
  19. }
  20. in_check(){
  21. expr $num1 + >/dev/null >&
  22. if [ $? -ne ];then
  23. echo "please input number"
  24. exit
  25. fi
  26. }
  27. empty_check(){
  28. if [ ! $name ];then
  29. echo "The input cannot be empty"
  30. continue
  31. fi
  32. }
  33. makedir(){
  34. dir=/yanglt/
  35. [ ! -n $dir ]&& mkdir $dir
  36. }
  37.  
  38. action_check(){
  39. if [ $? -eq ];then
  40. action "useradd $name successful" /bin/true
  41. else
  42. action "useradd $name " /bin/false
  43. fi
  44. }
  45. while true
  46. do
  47. cat<<EOF
  48. #################################
  49. .create user
  50. .delete user
  51. .query user
  52. .exit
  53. ################################
  54. EOF
  55. read -p "Please input num:" num
  56. in_check
  57. case "$num" in
  58. )
  59. read -p "please input name:" name
  60. empty_check
  61. pass=`mkpasswd -l `
  62. grep -w $name /etc/passwd >/dev/null
  63. if [ $? -eq ];then
  64. echo -e "$name already exist"
  65. exit
  66. else
  67. makedir
  68. useradd -s /bin/bash $name &>/dev/null
  69. echo $pass|passwd --stdin $name &>/dev/null
  70. action_check
  71. echo -e "$name\t$pass" >> /yanglt/Passwd.txt
  72. fi
  73. ;;
  74. )
  75. read -p "please input delete name:" name
  76. empty_check
  77. grep -w $name /etc/passwd >/dev/null
  78. if [ $? -ne ];then
  79. echo -e "$name is not exist"
  80. exit
  81. else
  82. userdel -r $name
  83. sed -i "/^$name$/d" /yanglt/Passwd.txt #进一步了解精确匹配,和变量匹配
  84. echo -e "$name delete successful"
  85. fi
  86. ;;
  87. )
  88. read -p "please input need query name:" name
  89. empty_check
  90. grep -w $name /etc/passwd >/dev/null #-w 精确匹配
  91. if [ $? -eq ];then
  92. grep -w "$name" /etc/passwd
  93. grep -w "$name" /yanglt/Passwd.txt
  94. else
  95. echo -e "$name is not exist"
  96. continue
  97. fi
  98. ;;
  99. *)
  100. exit
  101. ;;
  102. esac
  103. wait
  104. done
  105. [root@localhost ~]#

【shell 练习4】编写Shell用户管理脚本(二)的更多相关文章

  1. linux系统用户管理(二)

    5.组命令管理**组账户信息保存在/etc/group和/etc/gshadow两个文件中 /etc/group 组账户信息 [root@localhost ~]# head -2 /etc/grou ...

  2. Identity用户管理入门二(显示用户列表)

    在Controllers中新建AccountController,并在构造方法(函数)中注入SignInManager,UserManager UserManager   用户管理(注册,查找,修改, ...

  3. 【shell 练习3】用户管理脚本(一)

    一.创建十个用户,密码为八位 [root@localhost ~]# cat UserManger02.sh #!/bin/bash . /etc/init.d/functions [ $UID -n ...

  4. PC Server远程管理卡用户管理脚本实现

    1.IPMI工作原理图: 2.脚本实现流程图: 3.适配服务器机型: 4.演示效果: 5.实现代码: #!/usr/bin/env bash # Author : JACK ZHAO # Date : ...

  5. 转自ruby迷: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本

    试了一下perl下安装ssh模块,整了半天linux/window上都装不上,各依赖模块的版本总是匹配不上,后改了一下思路,用ruby吧 Net::SSH和Net::SCP是两个Ruby操作SSH的g ...

  6. linux用户管理(二)

    最简单的加入用户useradd 用户名这样的命令不好,因为会新建一个组为这个用户. 这里提到一个问题,为什么普通用户没有/etc/shadow的写权限却能修改自己的密码呢. 因为 /user/bin/ ...

  7. Linux 用户管理(二)

    一.groupadd --create a new group 创建新用户 -g  --gid GID 二.groupdel --delete a group 三.passwd --update us ...

  8. linux下的用户管理(二)

    创建帐号: 手工创建-> 1.在/etc/passwd中添加一条记录 2.创建用户主目录 3.在用户的家目录下设置默认的配置文件 4.设置用户初始口令 命令创建-> useradd或add ...

  9. 编写shell管理脚本(二)

    8.1  先测试“/etc/vsftpd”.“/etc/hosts”是否为目录,并通过“$?”变量查看返回状态值,据此判断测试结果.[root@localhost ~]# [ -d /etc/vsft ...

随机推荐

  1. 用java集合模拟登录和注册功能

    package com.linkage.login; import java.util.HashMap;import java.util.Iterator;import java.util.Map;i ...

  2. 破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)

    破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988) 题意描述 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下. ...

  3. hdu_5187_zhx's contest

    Problem Description As one of the most powerful brushes, zhx is required to give his juniors n probl ...

  4. MySQL高可用之MGR安装测试

    Preface     We've learned the machenism of MGR yesterday,Let's configurate an environment and have s ...

  5. linux 安装 node 环境

    本篇学习的分享主要说在linux 安装 node 环境,个人也是在腾讯云的实验室课程学习的,这里只是个人的一个学习记录, 大家也可以去腾讯的实验室来体验一下,教程十分详细易学. 1 .安装 Node. ...

  6. shell编程基础-01

    1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的 ...

  7. 微信小程序快速转成百度小程序的方法

    1.安装Node.js(>8.5.0)https://nodejs.org/ npm升级到最新版本的方法:npm install -g npm自动更新到最新版本 2.配置cnpm:在命令行中输入 ...

  8. Hive操作之向分区表中导入数据的语义错误

    1.建完分区表之后,向表中导入数据 命令为: load data local inpath '/home/admin/Desktop/2015082818' into table db_web_dat ...

  9. ECharts使用过程遇到的问题汇总

    获取ECharts npm install echarts --save 自定义构建ECharts 我选用的是常用版的echarts/dist/echarts.common.js 在我的项目根目录下m ...

  10. Leecode刷题之旅-C语言/python-206反转链表

    /* * @lc app=leetcode.cn id=206 lang=c * * [206] 反转链表 * * https://leetcode-cn.com/problems/reverse-l ...