用shell脚本增加几个组,并在每个组里创建一定的用户

昨天我们用语言写了一个关于用户组和用户的简单应用,但是说实话,就九个用户我已经重复的很烦恼了,于是我就想能不能通过shell脚本来实现批量增加用户。于是乎,我今天就想着用shell脚本去完成昨晚的例子。我们先来回顾一下昨天的例子。

题目:创建几个组,每个组有一定的成员,并且每个组有一个可以操作的文件夹,每个用户有一个自己的家目录,其他用户无法读取自己的家目录。其中两个组还有一个共用文件夹,两个组的组员都可以可读可写可操作,最后还有一个文件夹,全部的组都可以操作使用。下面是我昨晚列出的具体权限:

只不过,我今天做的是每个组分配了30个用户。废话不多说,脚本源码奉上

 1 #!/bin/sh
  2 #min=1
  3 #max=3
  4 for((i=1;i<4;i++))
  5 #while [$min -le $max]
  6 do
  7 case $i in
  8 1)
  9 groupname=yanfa
 10 groupadd ${groupname}
 11 mkdir /wenjian/yanfa
 12 chown -R :yanfa /wenjian/yanfa
 13 ;;
 14 2)
 15 groupname=yunwei
 16 groupadd ${groupname}
 17 mkdir /wenjian/yunwei
 18 chown -R :yunwei /wenjian/yunwei
 19 ;;
 20 3)
 21 groupname=renshi;
 22 groupadd ${groupname}
 23 mkdir /wenjian/renshi
 24 chown -R :renshi /wenjian/renshi
 25 esac
 26 #groupadd ${groupname}
 27 for((j=1;j<31;j++))
 28 #while [$j -le 30]
 29 do
 30 username=${groupname}${j}
 31 useradd -g ${groupname} ${username}
 32 #j=$(($j+1))
 33 done
 34 #i=$(($i+1))
 35 done
 36 

现在我来一步步解释这些代码,

首先第一行肯定就是定义使用的shell这里一般可以是/bin/bash或者/bin/sh

第二步就是for循环,这边是循环三次,for循环的开始,然后就是case语句,及其格式,然后就是对应每一个语句需要创建的用户组名,然后就是为用户组创建文件夹,然后就是给文件夹赋予一定的权限,然后esac就是case语句的结束,然后再循环三十次,为每个组创建三十个用户。最后的两个done就是for循环的结束。这就简单实现了,用户组和用户的创建,由于在调试程序的时候,一个个用户的删除比较麻烦,于是我就写了个针对于这个文件创建用户组的删除脚本。也贡献出来吧。

  1 #!/bin/sh
  2 for ((i=1;i<=30;i++))
  3 do
  4 userdel -r yanfa${i}
  5 userdel -r renshi${i}
  6 userdel -r yunwei${i}
  7 done
  8 groupdel yunwei
  9 groupdel renshi
 10 groupdel yanfa
 11 rm -rf /wenjian/yunwei /wenjian/yanfa /wenjian/renshi

 好了,这就是一个简单的shell脚本。

原文地址:https://www.cnblogs.com/g-j-f/p/9985348.html

时间: 2024-10-21 17:14:31

用shell脚本增加几个组,并在每个组里创建一定的用户的相关文章

用shell脚本实现增加,删除用户,查询更改UID和GID以及统计用户数

学习linux是从基础的命令开始的,当熟悉命令后,我们就得学习shell脚本的编写.在实际运维中,我们不可能一直盯着服务器看,机器式的维护,而是通过脚本,实现自动化运维,这也是运维的一种趋势.本菜鸟也是刚刚接触shell脚本.今天兴致大发,就写来一个简单的"系统用户管理菜单"脚本 该脚本功能如下: 1.可以实现增加删除用户: 2.判断用户是否已设置密码: 3.并能选择用户进行设置密码: 4.查询和更改uid.gid: 5.统计用户数,系统用户和普通用户数: 该脚本的代码如下: #!/b

shell脚本(一)

shell脚本(一) 1.常用命令 (1)系统管理 #useradd,添加新用户时默认会创建一个与用户名相同的用户组 #创建用户user1,并指定uid为1111,所属群组为2222(test),并且不建立家目录 groupadd test -g 2222 grep test /etc/group useradd user1 -g 2222 -u 1111 -M id user1 #创建用户user2,并指定uid为1112,所属群组为2222(test),并且建立家目录 useradd use

shell脚本编程(1)

1.什么是shell脚本 shell是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统.它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,shell本身是一个用C语言编写的程序,他是用户使用Linux的桥梁. 简单来说,shell脚本就是命令的堆积. 2.shell脚本之基本格式     脚本开头:第一行,顶格写 #!/bin/bash 注释信息:shell脚本中会忽略"#"开头的行,所以为了方便自己和他人的查看,那么我们一般都会在脚本中添加

shell脚本应用

shell脚本应用 理论部分: 随着企业的应用越来越多,服务器的自动化管理也是越来越重要,在linux中提供了一个非常强大的功能,这种功能名字为shell脚本,什么是shell脚本. 我们都知道我们所输入的命令计算机是不识别的,这时就需要一种程序帮助我们进行翻译,变成计算机所识别的二进制程序,同时又将计算机所执行的结果翻译给我们linux的shell脚本是一种特殊的应用程序,常见的shell解释器有很多种使用不同的shell时期内部指令命令提示方式方面会存在一些区别,可以通过/etc/shell

Linux学习第九节课-shell脚本编程

Linux第九节课 -------------------------------------------------------------------------------------------------------------------------------- 程序:算法+数据结构 数据:程序的核心 算法:处理数据的方式 程序编程风格 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 高级编程语言 编译:高级语言→编译器→机器代码→执行,例如c,c++等

shell脚本实现git快速提交代码与快速回滚

shell脚本实现git快速提交代码与快速回滚 创建一个commit库: [[email protected] cml]# echo "check github" > index.html [[email protected] cml]# cat index.html check github [[email protected] cml]# git add index.html [[email protected] cml]# git commit -m "check

Linux Shell脚本面试25问

Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: # chsh <用户名> -s <

shell脚本相关笔记

书写一个shell脚本并使之执行的步骤: 1. 打开一个文件,以 #! bin/bash作为开头 2.在文件中写入一些正确可执行的shell语句 3.保存文件 4.更改文件权限,执行文件 一些小技巧: 如果想在系统中添加自己的命令,比如执行自己建好的shell脚本语句这样一条命令 实例: 1.创建文件cd.sh 内容为: #! bin/bash cd xxx/yyy/zzz 2.保存文件 3.执行文件./cd.sh 现在发现并没有能够打开我们想要打开的目录并进去. 原因是shell还有分父she

Linux中的shell脚本编程——数组 ,高级字符串操作 ,高级变量 ,配置用户环境

概述: 概述: 本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境. 一.函数和位置参数扩展 1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉     2.匿名函数的使用 第一篇:数组 一.数组的定义: 1.变量:存储单个元素的内存空间 2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 3.数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开