
我遇到了一個奇怪的情況,我發現許多文件和資料夾的權限設定為 000。這很容易透過以下方式修復:
sudo find . -perm 000 -type f -exec chmod 664 {} \;
sudo find . -perm 000 -type d -exec chmod 775 {} \;
不幸的是,我突然意識到問題有點複雜,有一些奇怪的權限,例如 044 和其他一些奇怪的設定。事實證明,這些都是散落的,不可預測的。
有沒有辦法搜尋 0** 等權限或其他此類非常有限的權限配置?
答案1
我會用這樣的東西:
find . ! -perm -u=r ! -perm -u=w ! -perm -u=x -ls
或者,如果您更喜歡八進位表示法:
find . ! -perm -400 ! -perm -200 ! -perm -100 -ls
不幸的是,不知道如何將其作為一種-perm
選擇。
上面的語法是標準的,除了您可以在不支援獲得類似輸出的系統上-ls
替換的部分(常見但不是 POSIX)之外。-exec ls -disl {} +
find
-ls
答案2
答案3
如果您使用sfind
或任何程式使用libfind
或 如果您使用BSD find
,您可以使用:
find path -perm +0xxx
尋找設定了模式中提到的任何位元的文件,因此
find . ! -perm +0700
應該適合你的情況。順便一提:這也受到GNU find
.
請注意,這是一個既沒有在 POSIX 中提到也沒有在基於 SVr4 的find
.