Linux

是否可以搜尋具有特殊 Linux 文件屬性的文件?

  • June 12, 2015

是否可以在 linux 作業系統中搜尋具有特定文件屬性的文件,如下所示:---S--l---

---S--l---  1  root    root          0 Mar  1004:25/opt/csTuner/iba/wys/tuer_lolk

權限中的S是什麼:

S - 更改同步寫入磁碟;這相當於應用於文件子集的“同步”掛載選項。

我的目標是搜尋在磁碟上同步寫入的文件。

您問題中的範例看起來像ls -l輸出,而不是lsattr輸出。在ls -l輸出中,第一個欄位是mode,即類型(正常、目錄、符號連結…)和權限。

該位置的S位意味著setuid但沒有使用者的執行權限。鑑於使用者/組/其他都沒有執行權限,這沒什麼意義。這l意味著 setgid 位已設置但未執行。對於正常文件,這意味著啟用了強制鎖定的文件。

更有可能的是,該文件是使用錯誤的權限創建的,例如chmod 6000而不是chmod 600.

S現在,您所指的“同步”位用於lsattr.

如果您chattr +S file在 Linux 上執行此操作,則lsattr file輸出將如下所示:

--S----------e-- file

要查找具有此類標誌的文件:

如果文件名不包含換行符,您可以這樣做:

find . ! -type l -exec lsattr -d {} + | sed -n 's/^[^ ]*S[^ ]* //p'

請注意,S線上的位置或-------零件的長度不保證從一個版本e2fsprogs到下一個版本相同。

如果您不能保證文件名不包含換行符,則可以改為:

(find .//. ! -type l -exec lsattr -d {} +; echo //) |
 sed -ne '/\/\//!{H;d;}' -e 'x; s|^[^ ]*S[^ ]* .//.|./|p'

(每個文件名的開頭將由 標識.//)。

引用自:https://unix.stackexchange.com/questions/208990