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

简介:

一.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,如需转载请自行联系原作者







相关文章
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
22小时前
|
监控 Shell 应用服务中间件
第十二章 Shell脚本编写及常见面试题(二)
第十二章 Shell脚本编写及常见面试题(二)
|
22小时前
|
监控 关系型数据库 Shell
第十二章 Shell脚本编写及常见面试题(一)
第十二章 Shell脚本编写及常见面试题(一)
|
1天前
|
监控 Shell
生产环境Shell脚本Ping监控主机是否存活(多种方法)
生产环境Shell脚本Ping监控主机是否存活(多种方法)
|
1天前
|
运维 Shell
Shell脚本判断IP是否合法性(多种方法)
Shell脚本判断IP是否合法性(多种方法)
|
2天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
14 1
|
7天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
30 0
|
8天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
9天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
29 1
|
13天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
143 0