网络安全快速入门(十二)(下) 目录结构相关命令补充

 12.4 补充命令

我们已经了解了linux的目录结构,接下来我们大概看一下针对目录及文件的一些相关命令,

我们本章只讲三个目录及文件相关的命令,分别是tree,find及校验文件命令,我们一个一个来看这些命令。

12.4.1 tree命令

        tree命令一般是没有的,因此我们需要进行安装,所以这里需要先配置好yum,再用yum安装tree。

(因为本章节并不涉及到yum安装,因此请各位移步至下面博客来配置yum源!!)

Linux系统yum安装

我们具体来看看,tree是个怎么个事:

tree格式如下:

   tree /目录

我们来看看效果

查看/root的目录结构

看着似乎不是很多,我们来举一个例子多点的

看看 /etc/sysconfig/network-scripts/里的目录结构

可以看到有一根根县连着呢,这个就可以大概看到一个结构图,tree的命令就是简单梳理目录的各个文件的关系。

tree就简单讲到这里,接下来我们来看看下一个命令

12.4.2 locate命令

locate,这个命令主要是用来搜索文件的,该命令有一个优点,搜索速度快,但是结果也不准确,因为linux中维护了一个数据库,数据库中记录了系统中的每个文件的文件名和文件的保存路径,这个数据库每天早上更新一次,因此在当天出现的文件则不会去显示,

说白了:locate搜索文件的时候,就是去检索数据库中的记录,所以搜索速度快,但数据库是日更的,因此需要在第二天的固定时间才能看到这一天的记录!!!!

12.4.3 find

find 是一个搜索命令,主要是用来指定搜索的位置

格式如下

find 搜索目录 搜索条件 执行的动作 
搜索目录:

指定搜索的位置,也可以理解为路径加上目标文件,

这里先举个例子吧

我们想要搜索/etc/passwd文件,需进行以下操作

find /etc/passwd

我们来看结果:

结果搜到了/etc/passwd,完成!,下一个
这里要注意的是,查询文件也可以通过相对路径进行文件查询,查询不到则会显示以下信息
搜索条件:
指定根据什么条件进行搜索,常用的搜索条件如下:
  • -name:根据文件名进行搜索
  • -iname:指定查找文件的文件名作为查找条件(忽略大小写)
  • -group :根据文件的属组进行查找
  • -user :根据文件的属主进行查找
  • -uid :根据文件的属主ID进行查找
  • -gid :根据文件的属组ID进行查找
  • -nogroup:查找没有属组的文件
  • -nouser:查找没有属主的文件
  • -size:根据文件的大小进行搜索
  • -type: 根据文件的类型进行查找
  • -perm:根据文件的权限进行搜索
  • -ctime:根据文件的修改事件进行搜索,单位是天
  • -mtime:根据文件的编辑时间进行搜索,单位是天
  • -atime:根据文件的访问时间进行搜索,单位是天
  • -mmin: 根据文件的编辑时间进行搜索, 单位是分钟
  • -amin : 根据文件的修改时间进行搜索, 单位是分钟
  • -cmin :根据文件的修改事件进行搜索,单位是分钟
我们一个一个来举例子
-name
        我们已经知道了-name是指定查找文件的文件名作为查找条件,具体的查找格式如下:
 find 查询的路径 -name 查询的文件名称
我们还是以查询/etc/passwd为例子,查询/etc/passwd需要进行以下操作:
find /etc -name passwd

我们来看结果:

可以看到/etc下有两个passwd,完成!(一般情况下建议file后加引号)
我们现在进行下一个例子,如果我们不知道查询问件名,我们可以进行模糊输入,模糊输入命令格式如下:
find /etc -name "pass*"
小贴士:
这里我们用到了 *,该符号代表任意个任意字符,我们已经知道他是代表任意个任意个字符, 自然也可以代表0个符,因此我们一般用*来进行模糊查询。
我们看结果:
ok,下一个!
-iname
我们都知道Linux是严格区分大小写的,说白了,就是指定查找文件的文件名作为查找条件(忽略大小写)
还是进行举例,还是对/etc 下的passwd进行举例,使用-iname需要进行以下操作:
find/ etc -iname "PASSWD"
我们来看结果
iname完成,我们开始下一个内容。

(这里因为读者的Linux目前只有root用户,并没有普通用户,因此这里的区块只展示root相关的属主及数组!!!)


-group gname:
根据文件属组名称进行查找
格式:
find 路径 -group "属组名称"

例:在/root下找出属组是root的文件

操作如下

find /root -group gname "root"

我们看执行结果:

ok,完成!!

-user uname
根据文件的属主进行查找
格式如下:
find 路径 -user "属主名称"

还是在/root目录下,查找属主为root的文件

查询完毕!!

下一个

 -uid UID:
根据文件的属主ID进行查找  
小贴士:
属主id,数组id,均在passwd文件中可以查询,在passwd内容中以冒号分隔的第三个数字为属主id,第四个为数组id,具体如下图
在我们了解完属组id和属主id后,我们接着来看-uid,-uid的命令格式跟上述内容大差不差,格式如下
find 路径 -uid "属主id"

我们还是以root为例,查找root中属主为0的文件

命令如下

find /root -uid "0"

我们看结果

ok,完成,下一个
-gid GID:

根据文件的属组ID进行查找

命令格式如下

find 路径 -gid "属组id"

老规矩,root,查看属组为0的文件

命令如下

find /root -gid "0"

看结果

ok,下一个
-nogroup:
查找没有属组的文件
命令格式如下:
find 路径 -nogroup

这里我们不查root了,我们查根目录下没有属组的为背景

命令如下:

find / -nogroup

我们看结果

可以发现,大多数都是未查询到,我们完了一起说!
-nouser:
查找没有属主的文件
命令格式如下:
find 路径 -nouser

还是查根目录没有属主的文件:

命令如下:

find / -nouser

 我们看结果

通过查询,我们发现,这里显示没有找到这样的文件或目录,说明所有文件均有属组和属主!!!
-size 

这个搜索条件是根据文件的大小进行搜索,格式如下

find 路径名 -size [+-]n 

有人可能要问了,n表示什么呢?

n:表示文件的大小,后面跟上的是单位,常用的单位有如下:
  •         ‘b’ 表示512字节的块,如果不指定单位类型,那么默认就是以字节块为单位
  •         ‘c’ 为字节
  •         ‘w’ 两个字节的字
  •         ‘k’ 以KB为单位
  •         ‘M’ 以MB为单位
  •         ‘G’以GB为单位

我们先看例题,再了解[+-]

在/root下找出文件大小是1m的文件

命令如下

find /root -size 1M

这里我们可能还会有疑问,root下有这么多1m的文件么?

其实,在不加其他条件时,默认是寻找大于0m小于1m的文件,如果我们把1m换成5m时,则会寻找大于4m小于5m的文件!!!

因此,这里就要用到[+-]了,

[+-]的用法:

  • +:大于指定的值
  • -:小于指定的值

我们直接看例题:

在/root下找出文件大于是3m的文件

命令如下:

find /root -size +3M

看结果

可以看到,未查询到结果,因此root下没有大于3MB的文件!!

-type 类型:
        根据文件的类型进行查找
常用的文件类型有以下三种:
  • d:目录类型文件
  • f:一般文件
  • l:连接文件

命令格式如下

 find 目录 -type 文件类型

举一个例子,查看root下的一般文件

命令:

 find /root -type f

我们看结果

ok了,下一个

-mtime [+-]n
文件的创建(单位是天)
-ctime [+-]n
文件修改时间(单位是天)
-atime [+-]n

文件的访问时间(单位是天)

这三个命令大差不差,因此我放一块说

n的单位为天,有以下三种写法

  • -mtime 5:表示5天之前的那一天所创建的文件
  • -mtime -5:表示在5天之内所创建的文件
  • -mtime +5:表示在5天之前所创建的文件

我们来举个例子:

找出root下上次访问时间在7天之前的文件
命令如下:
find /root -atime +7

看结果

ok
分钟命令与上面三个命令用法一模一样,因此这里只放命令,不进行演示
  • -mmin:
    • 根据文件的编辑时间进行搜索, 单位是分钟
  • -amin :
    • 根据文件的修改时间进行搜索, 单位是分钟
  • -cmin :
    • 根据文件的修改事件进行搜索,单位是分钟
组合条件:
我们上面了解到了不少,但如果我们要进行组合查询我们该怎么办呢?
需要用到下面命令
  • -a:且,要求多个条件同时满足
  • -o:或,要求多个条件满足任意一个即可
  • -not:不是

这里我们举一个例子

从root下找文件类型是一般文件,并且后缀是txt

  find /root -type f -a -name *.txt

我们来看结果

ok!!

执行的动作:
  • -print:
    • 将找到的文件输出到终端(默认)
  • -ls:
    • 将找到的文件以长格式的形式输出(相当于执行ls -l)
  • -exec:
    • 表示要执行一个命令

这里我们只讲exec格式,格式如下

find xxx -exec 命令 \;

举例:

删除tmp下后缀是txt的文件。
命令如下
 find /root -name "*.txt" -exec rm -rf {} \;

我们来看结果

root下没有后缀为.txt文件,说明已被删除!!

find命令完工!!!

 12.4.4 校验文件

这个命令相比较find命令就比较简单了,这个命令主要是用来校验文件,查看文件是否被修改,具体分为两个操作:

  • 生成校验值
  • 比对校验
生成校验值

我们将etc下的passwd文件,shadow文件生成校验,命令格式如下

md5sum /etc/passwd /etc/shadow >0513.md5check

此时我们ls一下欸,会发现当前目录下多出一个文件

我们看一下这个一般文件的内容

会发现有两个码,但请注意:这个不是乱码,这个是通过md5编码将这两个文件内容转换成md5编码,如果如果文件内容被修改,则编码将会完全不一样!!!

 我们随便修改passwd里面的内容看一下:

我们将root系改为raot,现在我们进行验证

比对校验

命令格式如下

md5sum -c 0513.md5check

看结果

可以看到,oasswd出现异常,但shadow完好无损,由此得出passwd遭到我的篡改!

 好了,本章的补充内容就到这里了,如果有什么不足还请各位读者指出,感谢大家观看,下班!

  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值