Shell脚本编程案例 – 批量创建特殊要求账户

Shell脚本编程案例 – 批量创建特殊要求账户

Shell Scripting Cases – Create a Bunch of accounts with special requests

By Jackson@ML

本文简要介绍批量执行Shell脚本命令的基本思路,以检验shell脚本知识掌握情况。希望对读者有所帮助。

案例要求:

  • 需要批量创建20个系统账号(例如new_user001至new_user020),并进行密码设置(密码为随机值,要求是字母和数字混合的八位数);
  • 把账号和密码保存到文本文档中作为备份以供查看;
  • 在操作过程中的提示被保存到文本文件中, 屏幕不输出任何提示信息,当全部用户创建完毕,并且加密完成后输出提示语。

一、分步实现

以下分步骤解释该课题的实现过程。

1. 创建20个账户
1) 方法一:用seq命令输出等宽且步长为1的序列;

命令:

seq -w 020

执行结果如下图所示:

在这里插入图片描述

2) 方法二:用echo命令直接输出

命令:

echo {001..020}

执行结果如下图所示:
在这里插入图片描述

2. 无交互地设置密码

此命令执行之前,必须先创建一个新用户(new_user),然后再设置该用户的新密码(例如:八位数字),并用双引号包围。

命令:

useradd new_user
echo “89674523” | passwd --stdin new_user

执行结果如下图所示:

在这里插入图片描述

3. 创建一个混合的随机八位密码

命令:

echo $RANDOM | md5sum | cut -c 8-15

执行结果如下图所示:

在这里插入图片描述
可以看到随即产生的密码为:f65951de

4. 把账号密码备份到文档

命令:

echo -e$user\t $password>> UserDetail.txt

执行结果如下图所示:
在这里插入图片描述

同时,可以看到,密码备份文件UserDetail.txt位于当前目录/root。

5. 仅输出最后提示。

二、批量实现

接下来,将上述命令批量实现,集中到一个shell脚本文件(useradd.sh) 中,全部代码如下:

在这里插入图片描述
接下来,执行该脚本:

sh useradd.sh

执行结果如下图所示:

在这里插入图片描述
查看日志文本文件:

cat UserLog.txt

在这里插入图片描述
说明执行成功!

技术好文陆续推出,敬请关注。

喜欢就点赞哈,您的认可,我的动力!😊

相关阅读:

  1. Shell编程基础 - for循环
  2. Shell编程基础 - 变量
  3. Shell编程基础 - Shell的位置参数
  4. Shell编程基础 - 编写输入输出Shell脚本
  5. Shell编程基础 - Shell简介
  6. Linux系统Vi/Vim编辑器简介

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO 集成Prometheus

一、Prometheus介绍 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便…

Online ddl和replace ddl

在这个之前我们先来了解两种文件类型 1. .ibd文件 表数据文件,存储了表的数据和索引信息,从Mysql8开始表定义信息,从.frm文件改为.dcl文件存储,而表数据和索引信息仍然储存在.ibd文件,.idb文件通常在书籍库目录下。 …

初刷leetcode题目(10)——数据结构与算法

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…

PyQt6 QLCDNumber液晶数字显示控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计29条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

(Spring学习06)Spring之循环依赖底层源码解析

什么是循环依赖? 很简单,就是A对象依赖了B对象,B对象依赖了A对象。 比如: // A依赖了B class A{public B b; }// B依赖了A class B{public A a; }那么循环依赖是个问题吗? 如果不考虑Spring,循环依赖并不…

day31_servlet

今日内容 零、 复习昨日 一、请求转发 二、重定向 三、Session 四、Filter 零、 复习昨日 一、请求转发 1.1 现有问题 响应的代码与接收请求代码在一起查询全部的代码与登录的代码在一起,考虑一下后续删除完,更新完要查全部怎么办?这也没有遵循单一职责,不便于后期维护ps: 开…

1089 Insert or Merge (插入排序,相邻归并排序,附模拟实现)

注意点1:判断插入排序不能从头开始判断是否为目标数组, 比如:初始为1 2 3 4 3,目标数组也为1 2 3 4 3,则如果是从头开始推的,则下一步会变成1 2 3 4 3,而下一步应该是 1 2 3 3 4。所以我们应该…

vue3 setup语法糖,常用的几个:defineProps、defineEmits、defineExpose、

vue3和vue2组件之间传参的不同 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。 <script setup> 中的代码会在每次组件实例被创建的时候执行。 任何在 <script setup> 声明的顶层的绑定 (包括变量&#xff0c;函数声明&#xff0…

卓越进行时 | 赛宁联合国家一流网络安全学院探索校企合作新模式

为进一步探索网络安全教育技术产业融合发展的新机制新模式&#xff0c;全方位培养适应行业企业需求的复合型、创新型高素质网络安全人才。11月28日&#xff0c;南京赛宁信息技术有限公司&#xff08;赛宁网安&#xff09;与东南大学以优化产教融合发展原则&#xff0c;决定加强…

C++设计模式——Bridge模式(下)

在上篇 《C设计模式——Bridge模式&#xff08;上&#xff09;》中我们对于桥接模式做了一些介绍。介于桥接模式在实际项目开发中使用广泛&#xff0c;而且也是面试中常问常新的话题。在本篇&#xff0c;我们专注bridge模式在具体的项目开发中的应用&#xff0c;举几个例子来说…

服务器修复

服务器修复 主要服务器漏洞展示未禁用sync、shutdown、halt默认账户。未创建系统管理员、审计管理员、安全管理员账户设置系统管理员设置安全管理员 设置审计管理员配置PASS_MAX_DAYS 99999、PASS_MIN_LEN 5未配置TMOUT值配置HISTSIZE0未配置登录失败/密码复杂度策略umask值022…

2021年2月18日 Go生态洞察:Go 1.16中的新模块变化

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

数字时代的表演艺术:TikTok如何重新定义舞台

在数字时代的潮流中&#xff0c;TikTok崭露头角&#xff0c;重新定义了表演艺术的舞台。这款短视频应用不仅改变了用户与内容的互动方式&#xff0c;也为艺术家和创作者提供了全新的表达平台。本文将深入探讨TikTok如何在数字时代重新定义舞台&#xff0c;以及它对表演艺术的深…

基于FPGA的五子棋游戏设计

基于FPGA的五子棋游戏设计 本文基于FPGA设计五子棋游戏&#xff0c;使用按键输入&#xff0c;使用VGA接口输出。五子棋的棋具与围棋相同&#xff0c;棋子分为黑白两色&#xff0c;棋盘为1010&#xff0c;棋子放置于棋盘线交叉点上。两人对局&#xff0c;各执一色&#xff0c;轮…

【IEEE出版】2024年第四届消费电子与计算机工程国际学术会议(ICCECE 2024)

2024年第四届消费电子与计算机工程国际学术会议&#xff08;ICCECE 2024&#xff09; 2024 4th International Conference on Consumer Electronics and Computer Engineering 进入21世纪以来&#xff0c;计算机技术的高速发展带来了消费电子产品的快速更迭。在技术迅速发展历…

关于免费SSL证书

JoySSL是一家提供免费SSL证书的服务商&#xff0c;它的免费SSL证书不仅包括单域名&#xff0c;还包括多域名和通配符的免费证书。这意味着&#xff0c;无论您是只有一个网站的个人用户&#xff0c;还是拥有多个子域名的企业用户&#xff0c;都可以在JoySSL找到适合您的免费SSL证…

\n\r:解析java中的\r、\n、\r\n、\n\r的区别

1 \r 1.1 内容 回车符,将光标定义到当前行行首 1.2 在idea中测试 1.2.1 表现形式 在\r后有新内容时,会先删除之前以前存在过的文本,即只打印\r后面的内容 1.2.2 示例代码 package Work; public class Test05 { public static void main(String[] args) { System.…

Mysql七种高阶用法,让你少走弯路

首先先让我们创建表,SQL如下 CREATE TABLE moives (id int(11) NOT NULL AUTO_INCREMENT,movie_name varchar(200) COLLATE utf8mb4_bin DEFAULT NULL,actor_name varchar(100) COLLATE utf8mb4_bin DEFAULT NULL,price decimal(10,0) DEFAULT NULL,release_date date DEFAULT …

【GEO-AI】SAM-Geo库(segment-geospatial)入门教程

今年4月份&#xff0c;Meta公布了它图形分割模型Segment-Anything&#xff0c;简称SAM。当时就想着这个东西用在遥感影像分割上应该效果不错&#xff0c;奈何自己能力有限&#xff0c;没有办法上手实践。偶然间看到有介绍SAM-Geo工具包的文章&#xff0c;决定研究一番&#xff…

Vue中使用正则表达式进行文本匹配和处理的方法

1. 正则表达式基础 正则表达式是一种用来匹配字符串的模式。它由普通字符&#xff08;例如字符 a 到 z&#xff09;和特殊字符&#xff08;称为"元字符"&#xff09;组成。以下是一些基本的正则表达式示例&#xff1a; 匹配邮箱的正则表达式&#xff1a; /^[\w-](\…