轉linux的find perm搜尋

2022-06-10 11:54:09 字數 1391 閱讀 7147

linux命令find -perm使用方法

花了點時間才將linux中find命令的-perm引數弄懂,分享一下。

find -perm,根據檔案的許可權來查詢檔案,有三種形式:

find -perm mode

find -perm -mode

find -perm +mode

那麼這三者之間有什麼區別呢?解釋之前首先得簡單說一下linux中檔案許可權位的概念。在linux中檔案或目錄有三者許可權r,w,x,代表的含義分別是讀、寫、可執行。而乙個檔案或目錄的屬性中又包括所屬使用者u、所屬組g、其他o三個部分的屬性,分別表示所屬使用者、所屬組、其他使用者對這個檔案所擁有的許可權。看起來大概是這個樣子:  www.2cto.com  

所屬使用者   所屬組    其他

rwx       rwx      rwx

使用者在其擁有許可權的位上設定1,沒有許可權的位設定0。如果將每個部分的這些許可權位看成二進位制數,每個部分可以用3位二進位制數表示,最大值為7(2^3-1),表示可讀、可寫、可執行。嚴格的來說,檔案許可權除了r、w、x以外還有setuid,setgid許可權,等下再解釋。

好了,有了許可權位的基礎,那麼再來看find -perm mode。mode是三個數字表示的,每個數字最大值是7(原因前面解釋過了)。

find -perm mode , 表示嚴格匹配,也就是你的檔案許可權位轉換成對應的十進位制數字與mode一模一樣,那麼匹配成功,需要注意的是如果mode給的數字不足3位,那麼前面自動添0(嚴格的說是不足4位,原因就是前面所說的setuid,setgid,稍後解釋)

find -perm -mode , 表示mode中轉換成二進位制的1在檔案許可權位裡面必須匹配,比如mode=644那麼轉換成二進位制為110 100 100,而被查詢的檔案的許可權位也可以被轉換成乙個二進位制數,兩者在位上為1的部分必須完全匹配,而0則不管。例如被查詢的檔案的許可權為轉換成二進位制數是111 111 111那麼這個比如被匹配,而假如是100 100 100那麼則不會匹配。所以這個'-'的作用歸結起來就是匹配比mode許可權更充足的檔案(找不到什麼詞語來形容了)

find -perm +mode , 與 -mode的區別是+mode只需其中的任意乙個1的部分被匹配,-mode是所有1的部分都必須被匹配,同樣+mode也不管0位。  www.2cto.com  

現在來解釋setuid,setgid,setuid許可權是用來使其他使用者可以「越權」執行你的命令,而本質上的實現就是在許可權檢查的時候,在程序的的有效uid裡面儲存了這個其他使用者的uid,所以許可權得意驗證通過(在這裡的  注釋1裡面很簡單的介紹了一下),這些許可權用乙個新的3位二進位制數表示,有4,2,1三種值,4表示有setuid許可權,2表示有setgid許可權,1表示有粘著位(t)許可權(粘著位許可權最典型的例子是/tmp,每個使用者可以在裡面建立、更新、刪除自己建立(檔案所屬使用者是自己)的檔案,而不能更改別人的檔案)。如果有疑問,歡迎交流~

find perm 裡的 的含義

看到boobooke裡有些對find perm 裡的 的含義不是很理解,這裡就給大家再講一遍 perm中 的含義。我們舉個例子 比如當前目錄下有a b c d4個檔案 a檔案的許可權為6000 也就是a檔案僅有suid sgid的特殊許可權 b檔案的許可權為2000 也就是b檔案僅有sgid的特殊許...

轉linux檔案的讀寫

快取快取是用來減少高速裝置訪問低速裝置所需平均時間的元件,檔案讀寫涉及到計算機記憶體和磁碟,記憶體操作速度遠遠大於磁碟,如果每次呼叫read,write都去直接操作磁碟,一方面速度會被限制,一方面也會降低磁碟使用壽命,因此不管是對磁碟的讀操作還是寫操作,作業系統都會將資料快取起來 頁快取 page ...

linux 編碼轉換 轉

昨天晚上郎師兄打 說,我的結果檔案他開啟是亂碼,問我是不是字元編碼沒處理好。早晨早早的來到實驗室,請教了下同學,才知道linux shell 配置檔案中預設的字符集編碼為utf 8 utf 8是unicode的一種表達方式,gb2312是和unicode都是字元的編碼方式,所以說gb2312跟utf...