洞悉find中的德摩根定律和條件權限perm

1.德摩根定律

(1)初悉德摩根定律兒

在命題邏輯和邏輯代數中,德·摩根定律(或稱德·摩根定理)是關于命題邏輯規律的一對法則。
奧古斯塔斯·德·摩根首先發現了在命題邏輯中存在著下面這些關系:
非(A 且 B) = (非 A) 或 (非 B)非(A 或 B) = (非 A) 且 (非 B)

(2)圖解德摩根定律

1>.非(A or B) = (非 A) and (非 B)

約定以下圖中矩形代表全部,圓A和圓B是矩形的一部分并有部分相交

imageAandB.PNG

1)A or B,如下圖中的黑色部分:
    屬于A或者是屬于B,即為圖中黑色部分

imageAandB1.PNG

2)非A and 非B    1.非A為B黃色部分加上矩形中黑色部分,非B為A橘色部分加矩形中黑色部分,而非A and 非B即是去除A也取出B,即僅剩下黑色部分;

image非Aand非B.PNG

3)由1)和2)中圖可以看出,1)中圖和2)中屬于非關系,即非1)為2),非2)為1);
所以 非(A or B)= (非 A) and (非 B)

2> 非(A and B) = (非 A) 或 (非 B)

1)非(A and B),A and B,即屬于A也屬于B的部分,二者的交集
對二者交集進行取反,則非(A and B)部分為下圖中黑色部分

image捕非(AandB)PNG.PNG

2)(非 A) 或 (非 B)
    非A即不屬于A的部分,下圖1
    非B即不屬于B的部分,下圖2
    兩者取或即為下圖3

圖1 image

非AandB.PNG 

圖2 

非BandA.PNGimage 

圖3 image

捕非(AandB)PNG.PNG

3)由1)和2)可以看出非(A and B) = (非 A) 或 (非 B)

(3)德摩根定律在find命令中的使用示例:

1).找出/tmp目錄下,屬主不是root,且文件名不是fstab的文件

find /tmp\( -not -user root -a -not -name 'fstab' \) -ls

find /tmp-not \( -user root -o -name 'fstab' \) –ls

2.條件權限perm

(1)perm用處

可以根據文件不同用戶權限位,進行未見的查找動作,提高了文件查找的精確度。掌握該方式,可以使我們快捷有效的使用find從大量的系統文件中找到我們需要的文件。

(2)-perm的三種形式

find -perm modefind -perm -modefind -perm /mode1)mode:精確權限匹配,如:    find /root -perm 555 -ls
    查找/root下用戶組和其它用戶的權限均是讀和執行的文件,執行結果示例如下:
[root@CentOS6 Packages]# find /root -perm 555 -ls
    132235    4 -r-xr-xr-x   1 root     root         1343 Aug 13 18:31 /root/etc2016-08-13/rc.d/init.d/blk-availability    132261    4 -r-xr-xr-x   1 root     root         3045 Aug 13 18:31 /root/etc2016-08-13/rc.d/init.d/lvm2-monitor    132268    4 -r-xr-xr-x   1 root     root         2137 Aug 13 18:31 /root/etc2016-08-13/rc.d/init.d/lvm2-lvmetad
2)/MODE:任意一類(u,g,o)對象的權限中只要能一位匹配即可,或關系,(+從CentOS7開始淘汰)
查找/root/bin目錄下三類用戶至少有一類有寫權限的文件
find /root/bin -perm /222 -ls
[root@CentOS6 bin]# find /root/bin -perm /222 -ls131247    4 drwxr-xr-x   5 root     root         4096 Aug 14 21:05 /root/bin131246    4 drwxr-xr-x   3 root     root         4096 Aug 15 21:07 /root/bin/seatwork131242    4 -rwxr-xr--   1 root     root          100 Aug 11 17:14 /root/bin/seatwork/hostping.sh131241    4 -rwxr-xr--   1 root     root          149 Aug 11 14:54 /root/bin/seatwork/sumspace.sh
3)-MODE:每一類對象都必須同時擁有指定權限,與關系與關系0 表示此處的權限位不關心
查找三類用戶都必須有寫權限的文件
find /root/bin -perm -222 -ls
[root@CentOS6 bin]# find /root/bin -perm -222 -ls131246    4 drwx-wxrw-   3 root     root         4096 Aug 15 21:07 /root/bin/seatwork131242    4 -rwx-wxrw-   1 root     root          100 Aug 11 17:14 /root/bin/seatwork/hostping.sh131241    4 -rwx-wxrw-   1 root     root          149 Aug 11 14:54 /root/bin/seatwork/sumspace.sh131229    4 -rwx-wxrw-   1 root     root          142 Aug 11 14:51 /root/bin/seatwork/sumfile.sh131244    4 -rwx-wxrw-   1 root     root          142 Aug 11 17:47 /root/bin/seatwork/per.sh131248    4 -rwx-wxrw-   1 root     root           99 Aug 11 17:58 /root/bin/seatwork/login.sh137570    4 drwx-wxrw-   2 root     root         4096 Aug 15 16:26 /root/bin/seatwork/For137574    4 -rwx-wxrw-   1 root     root          797 Aug 15 13:11 /root/bin/seatwork/For/useradd.sh137573    4 -rwx-wxrw-   1 root     root          178 Aug 15 14:09 /root/bin/seatwork/For/multiplication.sh137571    4 -rwx-wxrw-   1 root     root          486 Aug 15 13:17 /root/bin/seatwork/For/rcfile.sh137572    4 -rwx-wxrw-   1 root     root          157 Aug 15 12:33 /root/bin/seatwork/For/varfile.sh131243    4 -rwx-wxrw-   1 root     root          111 Aug 11 17:56 /root/bin/seatwork/nologin.sh131233    4 -rwx-wxrw-   1 root     root          150 Aug 11 15:03 /root/bin/seatwork/sumid.sh131245    4 -rwx-wxrw-   1 root     root          138 Aug 11 17:20 /root/bin/seatwork/argsnum.sh131228    4 -rwx-wxrw-   1 root     root          158 Aug 11 16:36 /root/bin/seatwork/checkdisk.sh

總結: 對于德摩根定律和條件權限perm是find命令使用過程中的兩個難點,需要多對其進行練習和理解。以便在以后的文件查找中,提高工作工作效率。

3.find 練習題

1、查找/var目錄下屬主為root,且屬組為mail的所有文件
    find /var/ -user root -group mail -ls 
1+.查找/var目錄下屬主不為root,且屬組不為mail的所有文件
    find /var/ -not -user root -a -not -group mail
    find /var/ -not \( -user root -o -group mail \)2、查找/var目錄下不屬于root、lp、gdm的所有文件
    find /var/ -not -user root -a -not -user lp -a  -not -user gdm -ls
    find /var/ -not \( -user root -o -user lp -o -user gdm \) -ls3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件
    find /var/ -mtime -7 -a -not \( -user root -o -user postfix \) -ls4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件
    find / \( -nouser -o -nogroup \) -a -atime -75、查找/etc目錄下大于1M且類型為普通文件的所有文件
    find /etc/ -size +1M -type f 

6、查找/etc目錄下所有用戶都沒有寫權限的文件
    find /etc/ -perm -2227、查找/etc目錄下至少有一類用戶沒有執行權限的文件
    find /etc/ -perm -1118、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件
    find /etc/init.d/ -perm -113

原創文章,作者:提著醬油瓶打醋,如若轉載,請注明出處:http://www.www58058.com/36598

(0)
提著醬油瓶打醋提著醬油瓶打醋
上一篇 2016-08-16
下一篇 2016-08-16

相關推薦

  • 學習筆記–文本處理工具

    Linux下有很多文本處理工具,本文將介紹幾款比較常用的文本處理工具,比如對文本查看的工具:cat和less,文本截取工具:head和tail,按列抽取文本工具:cut,按關鍵字查詢文本工具:grep,下面將具體介紹各種工具的使用。 1、文本查看命令cat 用法: cat [OPTION]… [FILE]… cat命令一次性…

    Linux干貨 2016-08-07
  • 面向對象

    語言分類 面向機器:抽象成機器指令,機器容易理解。代表:匯編語言 面向過程:一件事情分步驟來完成,出現各種情況有解決辦法一一對應,問題規模小可以步驟化、按部就班的處理。代表:C語言 面向對象oop(object Oriented Programming):隨著計算機解決問題的規模擴大、情況更復雜,需要很多部分協作,面向過程編程就不合適了,演變出了面向對象編程…

    Linux干貨 2017-11-13
  • 處理文本的工具sed,vim 編輯器的使用 Linux版

    處理文本的工具sed Stream EDitor 行編輯器 sed一次處理一行的內容,處理時,將當前處理的行存儲在臨時緩沖區,稱為“模式空間”,接著用sed命令處理緩沖區中的內容,處理完成后,將緩沖區的內容送往屏幕,接著處理下一行不斷重復,直到末尾。            一次處理一行 文件&#82…

    Linux干貨 2016-08-11
  • N22-℡浮生.若夢 ╮第七周作業

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; ~]# mke2fs -t mkfs.ext4 -b 2048 -L MYDATA -m 2 /…

    Linux干貨 2016-11-14
  • linux 入門基礎

    Linux概念部分: 1.CPU是Central Processing Unit的縮寫,即中央處理器。由控制器和運算器組成,是計算機系統種最要組成部分。2.內存是介于CPU和外部存儲之間,是CPU對外部存儲中成粗與數據進行高速運算時存放程序指令、數據和中間結果的臨時場所,它飛物理實質就是一組具備數據輸入輸出和數據存儲功能的高速集成電路。3.內存是CPU能直接…

    Linux干貨 2017-09-03
  • 一次css頁面加載異常的折騰

    1       原始需求 近期在搭建平臺,因多域名會分割流量,所以希望將類似 ansible.178linux.com  salt.178linux.com qa.178linux.com 這些平臺整合為一個平臺,所示如下 ansible.178linux.com =è www.178li…

    系統運維 2015-06-10

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-19 15:05

    find命令是筆試中常會遇到的考點,需要多加練習,文章中命令與執行結果怎么跑到一起了,這個需要作者自己下來好好調整了。

欧美性久久久久