
我應該對資料夾應用什麼權限,以便每個人都可以看到層次結構和其中的所有文件,但他們不應該能夠讀取和寫入它們。該資料夾可以有多個其他資料夾,其中包含檔案。
答案1
列出目錄使用可執行位,我認為讀取實際上根本不會影響目錄。您必須對每個單獨的檔案設定權限,以防止它們被讀取或寫入。以下命令將為您完成所有這些操作,從您希望其啟動的資料夾中執行它們:
find . -type d | xargs chmod o=rx
find . -type f | xargs chmod o=
find
將遞歸地查找檔案 ( -type f
) 和目錄 ( -type d
) 並列印它們的名稱(缺少另一個指定的操作),並將其透過管道傳輸到xargs
,後者使用從管道讀取的檔案執行其參數。 將其他人的權限( ,表示您或擁有該檔案的群組中的其他人)chmod
的權限變更為完全 ( ) 讀取/列出 ( ) 資料夾,而不會變更普通檔案的權限。o
=
rx
正如 grumbel 在評論中指出的那樣,這只適用於行為良好的名字。要獲得所有這些,請使用他的解決方案:
find . -type d -print0 | xargs -0 chmod o=rx
find . -type f -print0 | xargs -0 chmod o=
或尋找內建的-exec
:
find . -type d -exec chmod o=rx '{}' ';'
find . -type f -exec chmod o= \{\} \;
請注意,您可以像第一行一樣引用大括號和分號,也可以像第二行一樣轉義它們,它們只需位於單獨的參數中即可。此外,-exec
將為每個檔案執行一次 chmod,而 xargs 將以盡可能少的命令執行此操作(基於最大命令列長度)。這就是為什麼我通常更喜歡 xargs。
答案2
sudo chown -R username:root "/directory you want"
-R
代表所有子目錄和檔案的遞歸。
用戶名-當前用戶
它有助於讀取/寫入/執行權限