更改資料夾權限

更改資料夾權限

我應該對資料夾應用什麼權限,以便每個人都可以看到層次結構和其中的所有文件,但他們不應該能夠讀取和寫入它們。該資料夾可以有多個其他資料夾,其中包含檔案。

答案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代表所有子目錄和檔案的遞歸。

用戶名-當前用戶

它有助於讀取/寫入/執行權限

相關內容