电子眼find

 1、摩根定律。

        话不多说,先上图。

        QQ图片20160815210119.png

如图:A和B交集为3
    A = 4 + 3
    B = 3 + 2
    C = 1


     !A = 1 + 2
     !B = 1 + 4

     ( A 且 B ) = 3 = ! ( 4 + 2 + 1 )
     ( A 或 B ) = 4 + 3 +2 = !C

进一步得出:

     (非A)或(非B)=非(A且B)

     (非A)且(非B)=非(A或B)

在linux中体现为:

      与:-a
      或:-o
      非:-not, !

 德·摩根定律即:

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

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

总结一句话:
      给AB加上括号 !拿出括号外   ,且变或,或变且
      给AB去掉括号 !拿放进括号内,且变或,或变且

例:
      属主不是root,且属主不是postfix
          -not \( -user root -o -user postfix  \) = -not -user root -a -not user postfix
      属主是root,或者是lp
          -user root -o -user lp = -not \( -not -user root -a -not -user lp \)

2、find的条件权限

    -perm [/|-]MODE
      MODE: 精确权限匹配
           当目标文件权限为 222 时,find -perm 222才会匹配
      /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,等价于或,CentOS 6及以前用+表示/
           只要当任意人有写权限时, find -perm +222就会匹配
      -MODE:每一类对象都必须同时拥有为其指定的权限标准,等价于且
           只有当每个人都有写权限时, find -perm -222才会匹配
           只有当其它人( other)有写权限时, find -perm -002才会匹配


作业:   

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

[root@ _9_ ~]# find /var -user root -a -group mail -ls
67151194    0 drwxrwxr-x   2 root     mail           99 8月 15 09:25 /var/spool/mail
73113649    4 -rw-------   1 root     mail         4034 8月 14 16:00 /var/spool/mail/root

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

[root@ _11_ ~]#  find /var -not \( -user root -o -user lp  -o -user gdm  \) -ls |head -2
69533372    0 drwxr-xr-x   2 unbound  unbound        21 7月 19 22:34 /var/lib/unbound
69533373    4 -rw-r--r--   1 unbound  unbound       409 11月 20  2015 /var/lib/unbound/root.key

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

[root@ _13_ ~]# find /var -mtime -7 -not \( -user root -o -user postfix  \) -ls
862201    0 drwxr-xr-x   2 chrony   chrony         18 8月 15 19:28 /var/lib/chrony
2925769    4 -rw-r--r--   1 chrony   chrony         42 8月 15 19:28 /var/lib/chrony/drift
103058276    8 -rw-------   1 setroubleshoot setroubleshoot     6410 8月  9 16:10 /var/lib/setroubleshoot/setroubleshoot_database.xml
70308468    0 drwxr-xr-x   2 lp       sys            80 8月  9 09:32 /var/log/cups

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

[root@ _14_ ~]#     find / -atime -7 -a \( -nouser -o -nogroup \) -ls

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

[root@ _15_ ~]# find /etc/ -size +1M -type f -ls
102768436 1304 -rw-------   1 root     root      1333123 8月  9 17:15 /etc/selinux/targeted/contexts/files/file_contexts.bin
34132148 3688 -rw-r--r--   1 root     root      3773297 8月  9 17:15 /etc/selinux/targeted/policy/policy.29
72580709 6852 -r--r--r--   1 root     root      7014922 7月 19 23:01 /etc/udev/hwdb.bin
34815969 1336 -rw-r--r--   1 root     root      1367395 3月  6  2015 /etc/brltty/zh-tw.ctb

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

[root@ _18_ ~]# find /etc/ -not -perm -222 -ls |head -3
33554561   12 drwxr-xr-x 130 root     root         8192 8月 16 08:46 /etc/
33554562    4 -rw-r--r--   1 root     root          501 7月 19 22:27 /etc/fstab
33554563    0 -rw-------   1 root     root            0 7月 19 22:27 /etc/crypttab

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

[root@ _20_ ~]#  find /etc/ -perm /111 -ls |head -3
33554561   12 drwxr-xr-x 130 root     root         8192 8月 16 08:46 /etc/
33554564    0 lrwxrwxrwx   1 root     root           17 7月 19 22:27 /etc/mtab -> /proc/self/mounts
67149963    0 drwxr-xr-x   3 root     root           36 7月 19 22:30 /etc/fonts

8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

[root@ _21_ ~]#   find /etc/init.d -perm -113 -ls
33697942    0 lrwxrwxrwx   1 root     root           11 7月 19 22:29 /etc/init.d -> rc.d/init.d


原创文章,作者:M20-1--孔祥文,如若转载,请注明出处:http://www.178linux.com/36269

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-16
下一篇 2016-08-16

相关推荐

  • 初识Linux基础

    一:计算机的组成及其基本功能 计算机主要由五大基础部件组成:控制器,运算器,存储器,输入设备,输出设备. 控制器:计算机的核心组件,协调各程序的运行,对计算机的各项资源进行控制分配; 运算器:计算机实现算术运算以及逻辑运算的部件; 存储器:计算机用来存放数据和程序的基本部件。 存储器由若干存储单元组成,每个存储单元都有一个地址,计算机通过地址对存储单元进行读…

    Linux干货 2018-03-04
  • linux程序包管理rpm,yum和编译安装以及冒泡排序练习

    linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码–> 预处理–> 编译–> 汇编–> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface W…

    Linux干货 2016-08-24
  • Docker之~集群配置

    一、前言 Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。 本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能。以下为Kubernet…

    2015-03-23
  • 网络N22期 第1周作业

    一、计算机组成及其功能 计算机由硬件部分和软件部分组成。     硬件部分包括,         1、CPU:包括运算器、控制器、寄存器、缓存,具有对数据控制和计算功能。         2、存储器:内部存储器、外部存储器,对数据提供存储功能。   …

    Linux干货 2016-08-15
  • iptables实现地址转换

    NAT:(工作在网络和传输层) 过载技术 Basic NAT:静态NAT     一个内部主机,分配一个外网地址 NAPT:动态NAT,网络地址端口转换;net会话表     源地址转换:SNAT 用于内网主机访问互联网    &…

    Linux干货 2016-10-31
  • 关于高级文件管理系统的几个实验

    实验1:用软件模拟生成RAID (1)选择磁盘或者创建新的分区lsblk 选择bcde四块磁盘 创建新的分区 每个为5Gfdisk(gdisk) /dev/sdb 交互式方式创建 选择分区ID为raid 6.7编号不一样!!! >可能需要同步内核中的磁盘分区表 centos6中用partx -a centos7中用 partprobe命令 (2)创建R…

    2017-08-12

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-18 15:42

    通过图片展示了自己对摩根定律的理解,不错,摩根定律只是find查找命令的一个选项,需要我们能对find有个完整的总结。find命令对我们来说很常用,所以希望作业能梳理好。