Files
使用不同的 ACL 遞歸查找文件
我將如何遞歸地查找所有 ACL 與我正在搜尋的文件不同的文件?例如,我想在一個目錄中查找具有與以下範例不同的 ACL 的所有文件:
# owner: bob # group: bobs-group user::rwx user:fred:rwx group::rw- mask::rwx other::r--
使用單獨的搜尋我希望能夠對目錄執行相同的操作,但權限略有不同。
您可以使用
find
和一個diff
.
- 將所需的引用權限保存在文件中,例如
perref
$cat perref # owner: bob # group: bobs-group user::rwx user:fred:rwx group::rw- mask::rwx other::r--
find
通過簡單地將輸出getfacl
與參考和否定匹配進行比較來做一些魔術。由於這需要剪切getfacl
輸出的第一行(即文件名),因此需要在此處進行程序替換,這必須通過 shell 腳本和正確的引用。find -type f \ ! -exec bash -c 'diff -q <(getfacl "$1" | sed 1d ) perref >/dev/null' bash '{}' \; \ -print
或者
-print0
最終,取決於進一步的計劃。diff
如果文件相同,這將作為退出狀態的 0 起作用。刪除
!
用於查找具有匹配 ACL 的文件。用於-type d
對目錄進行搜尋。