find命令之德.摩根定律及perm条件详解

  1. (1)德.摩根定律

           !A -a !B=!( A -o B )

           !A -o !B=!( A -a B )

           使用条件:条件中存在“非”、“与”“或”字眼的时候,可以考虑使用德.摩根定律来降低命令复杂性

    (2)应用实例

           实例一、查找/etc目录下所有用户都没有写权限的文件

            分析:文件用户主要分为三类:属主、属组、其他用户,可把上述条件解析为“-not w -a -not w -a -not -w”,根据摩根定律,可转化为“-not \( w -o w -o w \)”。

       find /etc -not -perm +222 

    1471326787868425.png

       实例二、查找/etc下至少有一类用户没有没有执行权限的

      分析:如上,用户分为三类,可解析为“-not x -o -not x -o -not x”,根据摩根定律,可转化为“-not \( x -a x -a x \)”

    find /etc -not -perm -111

    2.png

  2. find之条件perm

    (1)find [option]…查找目录 查找条件 执行动作

    (2)-perm [/|-]MODE

          MODE:精确匹配

          /MODE:任何一类对象中的权限中一位能匹配就行,也就是或关系,“+”在centos7以后就被替换了

          -MODE:每一类对象必须有指定权限

    实例:查找根目录下有特殊权限位的文件

           find / -perm /7000 -ls

    3.png

    发现只要有任意对象的权限满足一位就行

    实例二、查找/etc下权限为644的文件

     4.png

      发现匹配到的文件权限都是644

  3. 作业

     (1)查找/var目录下属主为root,且属组为mail的所有文件

    1.1.png

     (2)查找/var目录下不属于root,lp,gdm的所有文件

    2.2.png

     (3)查找/var目录下,其内容最近一周修改过,同时属主不是root,也不是postfix的文件

    3.png

     (4)查找系统上没有属主或属组,且最近一周被访问过的文件

    4.png

     (5)查找/etc目录下,文件大小大于1M,且文件类型为普通文件的所有文件

     5.png

     (6)查找/etc下所有用户都没有写权限的文件

    1.png

      (7)查找/etc/下至少有一类用户没有执行权限的文件

    2.png

      (8)查找/etc/init.d下,所有用户都有执行权限,其他用户有写权限的文件

    8.png

    没有找到符合条件的文件

     

原创文章,作者:mengzhiqian,如若转载,请注明出处:http://www.178linux.com/36320

(1)
mengzhiqianmengzhiqian
上一篇 2016-08-18
下一篇 2016-08-18

相关推荐

  • HAproxy实战

    HAproxy实验一 1、实验要求: (1) 动静分离discuzx,动静都要基于负载均衡实现; (2) 进一步测试在haproxy和后端主机之间添加varnish缓存(见实验二步骤); (3) 给出拓扑设计; (4) haproxy的设定要求: (a) 启动stats; (b) 自定义403、502和503的错误页; (c) 各组后端主机选择合适的调度方法…

    Linux干货 2016-11-15
  • sed行编辑器

    Linux文本处理三剑客之一:sed(Stream Editor)流编辑器 sed:     将指定的文本文件内容逐行读取至sed的临时内存空间当中,称为"模式空间",而后逐行查看是否被sed的地址定界所匹配到,如果匹配,则执行相应的编辑操作,否则,默认将模式空间中的内容打印至标准输出  …

    Linux干货 2016-08-15
  • 【译文】如何正确设定MySQL程序的选项

    MySQL手册文档版本:5.6  章节:4.2 Using MySQL Programs  略去了部分windows下使用mysql的相关的说明 译者:古二娃 时间:2015-03-15 章节目录: 4.2 Using MySQL Programs 4.2.1 Invoking MySQL Programs …

    Linux干货 2015-03-10
  • Linux虚拟网络接口-Bonding 配置

    一、bonding 的定义     bonding是通过将同一设备的多个物理网卡绑定到一个虚拟网卡上,再对外提供连接。对于外端来说,多个物理网卡共享虚拟网卡的IP和mac地址,也就表现为一个网卡设备。通过bonding技术可以实现高可用或者负载均衡。     bonding有7种工作模式:&nbsp…

    Linux干货 2017-07-02
  • bash代码注入的安全漏洞

           很多人或许对上半年发生的安全问题“心脏流血”(Heartbleed Bug)事件记忆颇深,这两天,又出现了另外一个“毁灭级”的漏洞——Bash软件安全漏洞。这个漏洞由法国GNU/Linux爱好者Stéphane Chazelas所发现。随后,美国电脑紧急应变中心(US-CERT)、红帽以及多家从事安全的公…

    Linux干货 2015-03-30
  • Linux终端类型

    Linux终端类型 Linux的终端类型包括控制台终端、虚拟终端、伪终端、串行终端、控制终端、图形终端。   终端 要理解伪终端(Pseudo Terminal),先来看看什么是“终端”(Terminal)。 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。 1、串行端口终端(/dev/ttySx) 串行端口终端(Ser…

    Linux干货 2016-10-14

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 14:43

    find命令中最难理解的是-perm选项了,将其中最难理解的部分通过实验总结成博文,是个好习惯,希望以后继续这样做。