Linux中的 德·摩根定律

Linux中的 德·摩根定律

§·德·摩根定律介绍

※概念

在命题逻辑和逻辑代数中,德·摩根定律(或称德·摩根定理)是关于命题逻辑规律的一对法则。

奥古斯塔斯·德·摩根首先发现了在命题逻辑中存在着下面这些关系:

非(P 且 Q) = (非 P) 或 (非 Q)

非(P 或 Q) = (非 P) 且 (非 Q)

德·摩根定律在数理逻辑的定理推演中,在计算机的逻辑设计中以及数学的集合运算中都起着重要的作用。

※模型图解

摩根定律.jpg 

 

如上图:D表示蓝色区域,A代表白色区域,B代表黄色区域,E代表(AB相交的区域)

我们大概来了解下摩根定律是怎样的思路:

◎测试一:非(P 且 Q) = (非 P) 或 (非 Q)

·(P Q):

P Q的区域为:E的区域 ;  E即为,ABD的区域。

·(P) (Q) :

P : D B 的区域

P : A D 的区域

P或非P ABD的区域。

·结果:非(P Q) = (P) (Q)

 

◎测试二:非(P 或 Q) = (非 P) 且 (非 Q)

·(P Q) :

PQ:即为 ABE的区域;  非ABE的区域:即为 D的区域。

·(P) (Q)

P:即为BD的区域; 非Q:即为AD的区域BD的区域与AD的区域合集:D的区域。

·结果:非(P Q) = (P) (Q)

 

§·Linux中德·摩根定律思想练习题

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

解:find /var -user root -a -group mail -ls

[root@Centos7 zipdir]# find /var -user root -a -group mail -ls
201327962    0 drwxrwxr-x   2 root     mail           69 Aug 12 11:19 /var/spool/mail
206430755 1180 -rw-------   1 root     mail      1208282 Aug 10 19:24 /var/spool/mail/root

 

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

解:

[root@Centos7 zipdir]# find /var -not -user root  -a -not -user lp -a -not -user gdm -ls
#不是root,不是lp,不是gdm的属主文件及为:非(root  或  lp 或  gdm的文件) 
表达式可改为: find  /var -not  \(-user root -o -user lp -o -user gdm\)
203409068    0 drwxr-xr-x   2 unbound  unbound        21 Jul 21 11:27 /var/lib/unbound
203409069    4 -rw-r--r--   1 unbound  unbound       409 Nov 20  2015 /var/lib/unbound/root.key
68465684    0 drwx------   2 tss      tss             6 Nov 21  2015 /var/lib/tpm
949938    0 drwxr-xr-x   3 colord   colord         50 Jul 21 11:35 /var/lib/colord
68485813    0 drwxr-xr-x   2 colord   colord          6 Nov 20  2015 /var/lib/colord/icc
2229271    4 -rw-r--r--   1 colord   colord       4096 Jul 21 11:35 /var/lib/colord/mapping.db
899622    8 -rw-r--r--   1 colord   colord       7168 Jul 21 11:35 /var/lib/colord/storage.db
961784    0 drwxr-xr-x   2 geoclue  geoclue         6 Nov 20  2015 /var/lib/geoclue
965063    0 drwx------   2 rpc      rpc             6 Nov 20  2015 /var/lib/rpcbind
68510463    0 drwxr-xr-x   2 chrony   chrony          6 Nov 24  2015 /var/lib/chrony

#与上面的结果一样

[root@Centos7 zipdir]# find  /var -not \( -user root -o -user lp -o -user gdm \) -ls
203409068    0 drwxr-xr-x   2 unbound  unbound        21 Jul 21 11:27 /var/lib/unbound
203409069    4 -rw-r--r--   1 unbound  unbound       409 Nov 20  2015 /var/lib/unbound/root.key
68465684    0 drwx------   2 tss      tss             6 Nov 21  2015 /var/lib/tpm
949938    0 drwxr-xr-x   3 colord   colord         50 Jul 21 11:35 /var/lib/colord
68485813    0 drwxr-xr-x   2 colord   colord          6 Nov 20  2015 /var/lib/colord/icc
2229271    4 -rw-r--r--   1 colord   colord       4096 Jul 21 11:35 /var/lib/colord/mapping.db
899622    8 -rw-r--r--   1 colord   colord       7168 Jul 21 11:35 /var/lib/colord/storage.db
961784    0 drwxr-xr-x   2 geoclue  geoclue         6 Nov 20  2015 /var/lib/geoclue
965063    0 drwx------   2 rpc      rpc             6 Nov 20  2015 /var/lib/rpcbind
68510463    0 drwxr-xr-x   2 chrony   chrony          6 Nov 24  2015 /var/lib/chrony

 

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

解:属主不为 root,也不是postfix即为: –not -user root  -a  -not  -user postfix

等同:-not  \( -user root  -o -user postfix \)

[root@Centos7 zipdir]# find /var -mtime -7 -not \( -user root -o -user postfix \) -ls
136800283    0 drwxr-xr-x   2 gdm      gdm            17 Aug 10 17:17 /var/lib/gdm/.config/dconf
2229275    0 drwx------   2 gdm      gdm            52 Aug 10 17:17 /var/lib/gdm/.config/ibus/bus
206776371    0 -rw-rw----   1 user1    mail            0 Aug 10 16:58 /var/spool/mail/user1
206824171    0 -rw-rw----   1 user2    mail            0 Aug 12 11:19 /var/spool/mail/user2

…………………………………..

 

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

解: 没有属主: -nouser  ,没有属组:-o  -nogroup , 并且一周内访问过:-a  –atime -7

[root@Centos7 /]# find /  -nouser -o  -nogroup  -a -atime -7
/var/spool/mail/user2
/home/user2
/home/user2/.mozilla
/home/user2/.mozilla/extensions
/home/user2/.mozilla/plugins
/home/user2/.bash_logout
/home/user2/.bash_profile
/home/user2/.bashrc

 

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

解:大于1M : –size +1M  并且为普通文件: –a  -type f

[root@Centos7 user1]# find /etc  -size +1M -type f -exec ls -lh {} \;
-rw-r--r--. 1 root root 3.7M Nov 21  2015 /etc/selinux/targeted/policy/policy.29
-r--r--r--. 1 root root 6.7M Jul 21 11:35 /etc/udev/hwdb.bin
-rw-r--r--. 1 root root 1.4M Mar  6  2015 /etc/brltty/zh-tw.ctb

 

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

解:所有用户都没有写权限的反义就是:有一类用户有写权限  -prem  /222

[root@Centos7 user1]# find /etc -not -perm  /222 -ls
67413670  196 -r--r--r--   1 root     root       198453 Jul 21 11:24 
201996308  208 -r--r--r--   1 root     root       211626 Jul 21 11:24 
137245057    4 ----------   1 root     root          815 Aug 12 20:32 /etc/gshadow
135047292    4 ----------   1 root     root          825 Aug 12 11:19 /etc/gshadow-
137245052    4 ----------   1 root     root         1389 Aug 12 20:32 /etc/shadow
135052857    4 ----------   1 root     root         1417 Aug 12 11:19 /etc/shadow-
206307131 6852 -r--r--r--   1 root     root      7014922 Jul 21 11:35 /etc/udev/hwdb.bin
135090020    4 -r--r--r--   1 root     root           33 Jul 21 11:27 /etc/machine-id
68801984    4 -r--r--r--   1 root     root          146 Nov 20  2015 /etc/pam.d/cups
136632557    8 -r--r-----   1 root     root         4188 Jul  7  2015 /etc/sudoers

 

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

解:至少一类用户没有执行权限反义即为:所有用户都有执行权限: –prem -111,取反即为我们需要的结果。

[root@Centos7 user1]# find /etc -not -perm -111 -ls
136456397    0 -rw-r--r--   1 root     root            0 Jun 10  2014 /etc/wvdial.conf
136456374    4 -rw-r--r--   1 root     root          508 Jan 27  2014 /etc/updatedb.conf
206058477   24 -rw-r--r--   1 root     root        20876 Jun 10  2014 /etc/postfix/access
206058478   12 -rw-r--r--   1 root     root        11681 Jun 10  2014 /etc/postfix/canonical
206062758    4 -rw-------   1 root     root           86 Nov 20  2015 /etc/ntp/keys
206062759    4 -rw-r--r--   1 root     root           74 Nov 20  2015 /etc/ntp/step-tickers
136606754    8 -rw-r--r--   1 root     root         5171 Jun 10  2014 /etc/man_db.conf
136632555    4 -rw-r-----   1 root     root         3181 Jul 25  2013 /etc/sudo-ldap.conf
136632556    4 -rw-r-----   1 root     root         1786 Sep 25  2012 /etc/sudo.conf
136632557    8 -r--r-----   1 root     root         4188 Jul  7  2015 /etc/sudoers
136632558    0 drwxr-x---   2 root     root            6 Nov 21  2015 /etc/sudoers.d
136632590    8 -rw-r--r--   1 root     root         4760 Jun 10  2014 /etc/enscript.cfg
136584837    4 -rw-r--r--   1 root     root          375 Nov 20  2015 /etc/trusted-key.key
136584974    4 -rw-r--r--   1 root     root         2872 Jun 10  2014 /etc/pinforc
136629111    8 -rw-r--r--   1 root     root         4479 Oct 31  2014 /etc/wgetrc
136602363   12 -rw-r--r--   1 root     root         8892 Jun 10  2014 /etc/nanorc
136745232    4 -rw-r--r--   1 root     root         1362 Jun 10  2014 /etc/pbm2ppa.conf
136745233    8 -rw-r--r--   1 root     root         6300 Jun 10  2014 /etc/pnm2ppa.conf
136832965    4 -rw-r--r--   1 root     root           37 Jul 21 11:34 /etc/vconsole.conf
136832967    4 -rw-r--r--   1 root     root           19 Jul 21 11:34 /etc/locale.conf
136832968    4 -rw-r--r--   1 root     root           14 Jul 21 11:34 /etc/hostname
136606740    4 -rw-r--r--   1 root     root          163 Jul 21 11:23 /etc/.updated
136632726   12 -rw-r--r--   1 root     root        12288 Jul 21 11:35 /etc/aliases.db
136800164    8 -rw-r--r--   1 root     root         6722 Aug 13  2015 /etc/screenrc
137072884    0 -rw-r--r--   1 root     root            0 Aug  9 21:17 /etc/111aa
.................................................................

 

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

解:所有用户有执行权限: –prem -111  ,其它用户有写权限: -prem –001

[root@Centos7 init.d]# find /etc/init.d/  -perm -111   -perm  -002 -ls
2642165    0 -rwxr-xrwx   1 root     root            0 Aug 12 17:18 /etc/init.d/f1
[root@Centos7 init.d]#

 

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

(0)
linux_rootlinux_root
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • Linux系统重定向和管道

    1、标准输入和标准输出              程序:指令+数据               &n…

    Linux干货 2016-08-04
  • 日志管理

    日志管理学习笔记

    2018-02-08
  • 运筹帷幄之中,决胜与千里之外!

           运筹帷幄之中,决胜与千里之外,决定改变一生。        自从2016年年后学校要求产参加毕业实习,但对linux一窍不通的我,阴差阳错的被一家网络公司给录取了。        安排在一家企业做驻场运维工程师,刚去驻场的时候并没有给我分配相应的工作只是给了一些关于数据库,网络,和系统的一些资料,要求进行自学。我想了想,就决定选择了系统进行了解…

    2018-03-26
  • 常见的单机虚拟网络类型

    前言:   无论是互联网还是物联网,他们的网络模型都是可以见的,而虚拟化和云计算中的网络模型 要比这些模型要复杂的多,有些设备你是可以到也有一些设备你是看不到的,这给我们运维人员带来的技术挑战。通过学习Xen、KVM虚拟化技术,对单机虚拟网络模型有了初步的认识,以下是我对单机虚拟网络模型的认识。 一、NAT模型    …

    Linux干货 2015-09-01
  • 群集简介和LVS_nat模式配置

    群集简介: 群集(或集群)和称呼来自于英文单词cluster,表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。 根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋,但无论哪种群集,都至少包括两台节点服务器。而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集…

    Linux干货 2017-02-13
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 答:     复制目录:cp -R /etc/skel /home/tuser1     修改权限:chmod -R go=- /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2016-12-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 09:41

    find命令基本是笔试题中必考的内容,也是我们查找文件的最重要的工具,而这其中最难的估计是-perm选项的理解了,只有深刻理解的摩根定律才能让我们熟练的运用find工具。