find命令中引數perm的用法

2021-09-22 01:22:22 字數 2831 閱讀 8466

按照檔案許可權模式用-perm選項,按檔案許可權模式來查詢檔案的話。最好使用八進位制的許可權表示法。

如在當前目錄下查詢檔案許可權位為755的檔案,即檔案屬主可以讀、寫、執行,其他使用者可以讀、執行的檔案,可以用:

de>$ find . -perm 755 -printde>

還有一種表達方法:在八進位制數字前面要加乙個橫槓-,表示都匹配,如-007就相當於777,-006相當於666

de># ls -l

-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 http3.conf

-rw-rw-rw-    1 sam      adm         34890 10月 31 00:57 httpd1.conf

-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 httpd.conf

drw-rw-rw-    2 gem      group        4096 10月 26 19:48 sam

-rw-rw-rw-    1 root     root         2792 10月 31 20:19 temp

-perm mode:檔案許可正好符合mode

-perm +mode:檔案許可部分符合mode

-perm -mode: 檔案許可完全符合mode

我們首先建立下面的乙個例子

#ls -l ./testdir

——s— 1 root root 0 2008-05-06 10:39 2000

—s—— 1 root root 0 2008-05-06 10:39 4000

—s–s— 1 root root 0 2008-05-06 10:39 6000

-rws–s— 1 root root 0 2008-05-06 10:39 6600

我建立了4個檔案,都具有suid/sgid位。

假定我執行

find . -type f -perm 6000

那麼我們顯然可以得到下面的結果

./60000

這屬於完全匹配。

如果執行find . -type f -perm -6000呢,其結果是:

./6000

./6600

這裡的-號表示有1的位置一定要正確匹配,其他無所謂。這裡要轉成二進位制來說,首先6000轉成三位的二進位制是下面這個樣子

110 000 000 000 

這表示前面兩個1一定要匹配,其他無所謂。那能匹配的就是6000,6600兩個檔案,其許可權二進位制轉換過來分別是

110 000 000 000

110 110 000 000

而如果是執行find . -type f -perm +6000呢,結果會怎樣?

我們看看結果

./6000

./2000

./4000

./6600

+號的意思是,只要有乙個1匹配就行了,也就是說前2位中,只要有乙個1就行,所以上面的都符合要求,因為翻譯成二進位制變成

110 000 000 000

010 000 000 000

100 000 000 000

110 110 000 000

所以,從上面的結果可以看出,命令find . -type f -perm +6000就是指定目錄下所有具有suid/sgid的程式。

這是在做安全維護的時候,應該常使用的乙個指令。我們首先建立下面的乙個例子

#ls -l ./testdir

——s— 1 root root 0 2008-05-06 10:39 2000

—s—— 1 root root 0 2008-05-06 10:39 4000

—s–s— 1 root root 0 2008-05-06 10:39 6000

-rws–s— 1 root root 0 2008-05-06 10:39 6600

我建立了4個檔案,都具有suid/sgid位。

假定我執行

find . -type f -perm 6000

那麼我們顯然可以得到下面的結果

./60000

這屬於完全匹配。

如果執行find . -type f -perm -6000呢,其結果是:

./6000

./6600

這裡的-號表示有1的位置一定要正確匹配,其他無所謂。這裡要轉成二進位制來說,首先6000轉成三位的二進位制是下面這個樣子

110 000 000 000 

這表示前面兩個1一定要匹配,其他無所謂。那能匹配的就是6000,6600兩個檔案,其許可權二進位制轉換過來分別是

110 000 000 000

110 110 000 000

而如果是執行find . -type f -perm +6000呢,結果會怎樣?

我們看看結果

./6000

./2000

./4000

./6600

+號的意思是,只要有乙個1匹配就行了,也就是說前2位中,只要有乙個1就行,所以上面的都符合要求,因為翻譯成二進位制變成

110 000 000 000

010 000 000 000

100 000 000 000

110 110 000 000

所以,從上面的結果可以看出,命令find . -type f -perm +6000就是指定目錄下所有具有suid/sgid的程式。

這是在做安全維護的時候,應該常使用的乙個指令

find命令中引數perm的用法

按照檔案許可權模式用 perm選項,按檔案許可權模式來查詢檔案的話。最好使用八進位制的許可權表示法。如在當前目錄下查詢檔案許可權位為755的檔案,即檔案屬主可以讀 寫 執行,其他使用者可以讀 執行的檔案,可以用 de find perm 755 printde 還有一種表達方法 在八進位制數字前面要...

find命令中引數perm的用法

按照檔案許可權模式用 perm選項,按檔案許可權模式來查詢檔案的話。最好使用八進位制的許可權表示法。如在當前目錄下查詢檔案許可權位為755的檔案,即檔案屬主可以讀 寫 執行,其他使用者可以讀 執行的檔案,可以用 de find perm 755 printde 還有一種表達方法 在八進位制數字前面要...

find命令之perm引數

perm引數有3種型別 1.perm 644 這種型別是精準匹配,只把許可權是644的檔案和目錄取出來 root centos6 find perm 644 ls 1703939 4 rw r r 1 root root 3384 jan 23 20 24 install.log.syslog 17...