CLI find 查詢指定許可權的檔案

2021-07-29 13:59:33 字數 1451 閱讀 7213

說明:

** 並新增了一些自己的修改:p

#查詢系統中被設定了setuid的檔案:

find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;`

比如當前目錄下有a b c d4個檔案

a檔案的許可權為6000 也就是a檔案僅有suid sgid的特殊許可權

b檔案的許可權為2000 也就是b檔案僅有sgid的特殊許可權

c檔案的許可權為4000 也就是c檔案僅有suid的特殊許可權

d檔案的許可權為6600 也就是d檔案有sgid suid的特殊許可權並且該檔案擁有者對該檔案有讀寫許可權

那麼現在find . -type f -perm 6000可以找到a檔案,因為a檔案許可權為6000

那麼現在find . -type f -perm -6000可以找到a d兩個檔案,這是因為:

我們可以先將a b c d這4個檔案的許可權轉化為2進製那麼,

a許可權轉為2進製後為 110 000 000 000

b許可權轉為2進製後為 010 000 000 000

c許可權轉為2進製後為 100 000 000 000

d許可權轉為2進製後為 110 110 000 000

find . -type f -perm -6000 中的6000許可權轉為2進製為110 000 000 000,那麼6000前的-號代表缺一不可,也就是如果有1的地方必須有1,那麼這裡找-6000許可權的檔案,這6000許可權裡前面有2個位置都是1,所以這裡find找-6000許可權的檔案就是找前面2個位置都是1的檔案.而只有a d這兩個檔案前2個位置都是1,所以find . -type f -perm -6000 只會找到a d兩個檔案.

find . -type f -perm +6000會找到a b c d這4個檔案,這是因為:

+6000裡的這個+號代表有1即可,也就是有1的位置,任何位置只要有1就可以.那麼這裡找+6000許可權的檔案,這6000許可權前面2個位置都有1,所以這裡find 找+6000許可權的檔案就是找前面2個位置只要有乙個位置有1的檔案就可以了,這4個檔案都符合要求所以最後都能被find . -type f -perm +6000找到

我們使用man查詢find的幫助文件時,發現-perm還有乙個/modle的格式,其實它等同+modle,它建議我們使用/而不使用+, 因為+容易產生混淆。所以以後您見到find -perm /modle這樣的格式時, 就把它看成是+modle即可。

find 查詢指定許可權的檔案

說明 並新增了一些自己的修改 p 查詢系統中被設定了setuid的檔案 find type f perm 04000 o perm 02000 exec ls lg perm permission perm mode 精確匹配許可權 perm mode 完全包含此mode時才可以匹配 perm mo...

php使用glob函式快速查詢指定目錄檔案的方法

php搜尋當前目錄所有檔案,如下 複製 如下 array glob print r array array 0 1.php 1 10.php 2 11.php cymatqfnbsp 3 2.asp 4 3.asp 5 4.aspx 6 5.html 7 6.php 8 7.php 9 8.php ...

Hive中將查詢結果匯出到指定分隔符的檔案中

在hive0.11.0版本中新引進了乙個新的特性,當使用者將hive查詢結果輸出到檔案中時,使用者可以指定列的分割符,而在之前的版本是不能指定列之間的分隔符。在hive0.11.0之前版本如下使用,無法指定分隔符,預設為 x01 hive hive insertoverwrite local dir...