shell数组及random相关应用和批量修改建立用户,检查文件篡改脚本

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

一.shell数组

1.数组

      数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。


数值类型的数组:一对括号表示数组,数组中元素之间使用“空格”来隔开。

举个列子: arr_number=(1 2 3 4 5);

  

字符串类型数组:同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开。

arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss');


2.读取数组

定义取值

a0c8643c2bf41f5803edf70fac0b51a1.png


dc00aa250129a62850851c25acf177b3.png


取值,取个数,添加

0de163dffbbabef061e05f01066f1ca3.png


删除数组

530fc514b160885cbbbec4e68441a638.png


修改数组

f428ba8083bc1c40b75ff49ad21035c7.png


3.数组脚本练习

取数值遍历

c2aa895c16bff8c2364e56ed5d14482a.png


取字符遍历

54bea9e5a97ef7cf614f238f5cc7e435.png


数组里可以是shell命令

e96189d08c2fdd9df7b81c25d23953d1.png


数组字符的取值之取出小于6个字符的单词

方法一:数组方法

25b323c8ea4fce769bdde2e8e43165e3.png

ad7d647508a15fc8beac84b45806b064.png



方法二:统计字符串方法

62f278cef8bb7abfbe253f952d9ea5da.png

831268a9e9cfc10f643e3d2f7e47298e.png

aa18c64b0165a0922cab37d5115d50fa.png



方法三:awk的方法

ce4ba8bd469a3bd2f7f96094e30fdad6.png


二.三种取随机数并加密的方法


1.random的取数并加密

取数的方法:

dba3bd986bd100e199cecf8a1067e559.png


取随机数的方法:

588d71e5632163855c0686d5f4a8e26b.png


取随机数的并加密的方法:

5687a202b63ccf88603fde8bfeaa0f38.png


加密后截取不同的位数:

2517e25d72af8db15f289e883277f7cf.png


2.data时间取随机数并加密

1b30300fc123ff111ead3515636aed4c.png


3.openssl取随机数并加密

64f3ee8bc18a22b2a54d75ef03a7aa62.png


三.随机数的应用

1.批量创建以随机数开头的文件

题目1:在/westos目录下创建10个开头以10个小写字母的随机数,结尾是_westos.html的文件

d1e555a42618871aa7f1fc8ac0a889c5.png


a7250c9e6a4a30046abe8e48c96402d5.png


题目2:批量将html换成HTML

第一种方法 for


af33b7060c668f4f4883c595a5d4d204.png

65ea81c29be36529d9b59f9f8d6056bb.png


第二种方法 AWK

e73fab9812a5d73dce81579b62605926.png



题目3:在/westos目录下创建10个开头以10个小写字母的随机数,结尾是_westos后面是带两位序号的.html的文件


注:下面的脚本使用了两种生成随机加密数的方法:random和openssl


ba0b33f6bfe7da62ac32789c495e2415.png

922df878520b943ee77963a29d0f0238.png



2.批量创建带序号的用户,并且密码是随机数,并输出到文件中

43b1707e68326a78167e081f0b5e95b8.png


运行结果:

242e470b5304ead0a8b554c2ff3161cb.png


查看输出文件:

6e57c958a7b958127f3922d5b13ec52e.png


批量删除创建的用户:

9ca6a5cd006579d82d676a8d6d8f5d4f.png



3.将加密后的密钥转化为加密前的数字(破解加密)

定义一个数组,里面为需要破解的加密后的文字

db3ad13743dd264478f1b99981cb5f75.png


fungetmd5为生成全部的随机加密,共有32767个

funfindmd5是跟数组里加密后的进行比对

没有的话调整cut的位数


b50a3ab1443fd8141b74e4e1b22d1768.png


四.通过加密检查文件是否变动的脚本,防止别人篡改服务器的文件

1.模拟httpd默认发布目录,拷贝一些文件做实验

1ccdda10e908e0d84314950724d22831.png



2.将全部文件进行md5算法加密,生成加密后的数据库,俗称指纹库

4cb77181b1f625910f7f09369f643c58.png


3.将文件全部导入到wenjian.db中

882dfafdee74be2b843c919160f8e275.png


4.测试实验:篡改原目录下的文件aliases

用md5的加密算法验证,和原来的数据库进行比对,有错误,找到被篡改的文件aliases

891a8cdecbac739620db96b0204c5158.png


只显示错误的信息

29c06ea2cf15f3bf03a4890596a4ad86.png


5.如果原文件的数量发生改变,九无法用md5算法找出,只能将变动后的原文件重新生成一个新的数据,和最初的文件db进行比对,变可以查出文件数量上的变化

68a752ca010d66f10f8af960f0fbc919.png


6.写成测试脚本

e793078abbe3c5e7e533aa964fdeab2d.png


      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1981844,如需转载请自行联系原作者







相关文章
|
4月前
|
Shell
Shell 文件包含
10月更文挑战第5天
47 4
|
4月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
145 1
|
4月前
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
56 3
|
3月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
92 2
6种方法打造出色的Shell脚本
|
3月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
116 1
|
3月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
110 2
|
4月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
82 6
|
3月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
4月前
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
33 1
|
4月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
127 2