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 09:26
下一篇 2016-08-15 09:26

相关推荐

  • 第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限; [root@centos7 ~]# cp -r /etc/skel/ /home/tuser1[root@centos7 ~]# ls -ld /home/tuser1drwxr-xr-x. 2 root root 72 1…

    Linux干货 2016-11-27
  • n22-第一次作业-对Linux基础知识的回顾

    1、描述计算机的组成及其功能   根据冯诺依曼计算机体系结构模型,计算机由运算器、控制器、存储器、输入设备、输出设备五大部分组成。如上图:    运算器主要由算数逻辑单元ALU和通用寄存器组成,主要用于完成算术运算和逻辑运算。      控制器是整个计算机的控制中心,它的主要功能是周而复始…

    Linux干货 2016-08-15
  • Ansible (playbook)

    一、YAML 1.1 YAML介绍 YAML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822等。Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。 YAML Ain’t Marku…

    Linux干货 2017-11-01
  • 用vsftpd来搭建网络yum源

    1、分别在CentOS6和CentOS7分别搭建网络yum源 a、CentOS 7中 首先安装并启用vsftpd服务 [root@node1 ~]# mount /dev/cdrom /mnt/yum/ [root@node1 ~]# vim /etc/yum.repos.d/local.repo [local] name=local baseurl=fil…

    2015-10-03
  • 计算机的组成

        计算机组成(computer composition)指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。 计算机组成的任务是在指令集系统结构确定分配给硬件系统的功能和概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。这种联系包括各功能部件的内部和相   &nbsp…

    2017-03-26
  • 网络第21期第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost ~]# fdisk /dev/sdb WARNING: DOS-compatible m…

    Linux干货 2016-10-09

评论列表(1条)

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

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