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条)

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

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