find命令中參數perm的用法

按照文件權限模式用-perm選項,按文件權限模式來查找文件的話。最好使用八進制的權限表示法。安全

如在當前目錄下查找文件權限位爲755的文件,即文件屬主能夠讀、寫、執行,其餘用戶能夠讀、執行的文件,能夠用:ide

de>$ find . -perm 755 -printde>ui

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

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

# find . -perm 006
# find . -perm -006
./sam
./httpd1.conf
./tempde>翻譯

-perm mode:文件許可正好符合modeorm

-perm +mode:文件許可部分符合modeit

-perm -mode: 文件許可徹底符合modeclass

咱們首先建立下面的一個例子

#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的程序。

這是在作安全維護的時候,應該常使用的一個指令。test

相關文章
相關標籤/搜索