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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

技术小胖子 2017-11-24 14:12:00 浏览638
展开阅读全文

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







网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注