安全运维必看:如何用 find -perm 检查高危权限文件?

系统
本文会用浅显易懂的方式,详细介绍如何使用find命令的-perm选项,以及如何通过实际案例来掌握它的使用方法。

在日常的Linux系统管理工作中,经常需要查找具有特定权限的文件。这时,我们可以用find命令的-perm选项来高效地完成这项任务。这个功能非常实用,特别是当我们需要进行安全检查的时候。本文会用浅显易懂的方式,详细介绍如何使用find命令的-perm选项,以及如何通过实际案例来掌握它的使用方法。

一、基本语法

find [查找路径] -perm [权限模式]
  • 1.

知识点:

  • 查找路径:要搜索的目录,. 代表当前目录。
  • 权限模式:需要匹配的权限,可以是绝对模式(八进制)或符号模式(符号权限)。

在使用find命令时,-perm选项提供了三种不同的表达方式来帮助您根据文件权限进行搜索。

为了方便下面的演示,我准备了一些文件。这些文件名与其权限呈对应状态。可以通过如下脚本创建。

#!/bin/bash

# 创建 perm 目录
mkdir -p perm
# 定义文件名和权限的对应关系
files=(
"000"
"001"
"002"
"004"
"005"
"006"
"007"
"010"
"020"
"040"
"050"
"060"
"070"
"100"
"200"
"400"
"440"
"500"
"600"
"644"
"666"
"700"
"755"
"777"
)

# 遍历文件名列表
for file in "${files[@]}"; do
    # 创建文件路径
    filename="perm/${file}.txt"

    # 创建文件并写入内容
    echo -e "$file" > "$filename"

    # 设置文件权限为文件名中的权限值
    chmod "$file" "$filename"

    echo "Created file: $filename with permissions: $file"
done

echo "All files created successfully in the 'perm' directory!"
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

执行上述脚本,会在指定的目录下生成如下文件:

二、精确查找

在Linux文件权限中,每个权限由3组数字(用户、组、其他)表示。如下图所示:

知识点:

  • 第一位数字7:表示文件所有者拥有读写 执行(rwx) 权限.
  • 第二位数字5:表示文件所属组拥有读执行(r-x) 权限.
  • 第三位数字5:表示文件其他组拥有读执行(r-x) 权限.

有了以上这些基础知识后,下面通过几个例子来巩固一下:

查找权限精确匹配 644 的文件:

find  . -perm 644
  • 1.

上述命令执行后,会在当前目录匹配出是644权限的所有文件,如下图所示:

三、模糊匹配

在模糊匹配情况下,有两种写法,一种是在权限加上-,另外一种是在权限加上/。

1. 所有匹配模式(-前缀)

这两种模糊匹配有什么区别呢?下面通过例子来阐述:

find . -perm -111
  • 1.

执行上述命令后,输出如下结果:

通过观察上述结果发现-perm -111匹配到两个权限文件分别是755和777。这个-perm -111表示3个权限位必须至少有1。

2. 任意匹配模式(/前缀)

find . -perm /111
  • 1.

执行上述命令输出如下结果:

相比于使用“-”,采用“/”能够匹配到更多的文件。这里的“/”类似于正则表达式中的“或”逻辑,这意味着在三个权限位中,只要有一个满足了匹配条件,那么其他两个权限位就不需要再考虑了。

四、结合-exec 进行批量操作

这个命令用于查找 /var/www 目录下权限为 777 的文件或目录,并将它们的权限修改为 755。

find /var/www -perm 777 -exec chmod 755 {} \;
  • 1.

知识点:

  • {} 是一个占位符,表示 find 查找到的每个文件或目录的路径。
  • ; 表示 -exec 命令的结束。

五、小结

责任编辑:赵宁宁 来源: 攻城狮成长日记
相关推荐

2020-02-20 14:47:26

运维HTTPS机密性

2013-08-29 09:19:08

2013-01-30 17:19:48

2022-05-24 10:36:45

云原生容器应用

2018-08-29 09:23:30

2015-03-12 10:38:49

2019-12-17 09:42:11

运维架构技术

2012-02-15 14:49:45

2015-09-15 13:41:14

文件系统检测工具AIDE运维工具

2015-03-12 09:42:27

2018-08-16 08:37:03

机房运维硬件

2016-06-22 15:54:01

2019-10-22 22:22:18

程序员Linux人生第一份工作

2009-08-03 10:00:24

北塔BTIM

2023-10-28 16:06:55

2018-05-16 14:28:28

运维工具服务器

2018-09-26 05:33:49

2011-04-27 12:41:29

2018-11-15 11:52:36

百度云运维AIOps

2021-05-06 11:42:07

运维架构技术
点赞
收藏

51CTO技术栈公众号