chmod -R 由於某種原因使子資料夾中的檔案不可讀

chmod -R 由於某種原因使子資料夾中的檔案不可讀

我在設定一些 WordPress 主題時調整了權限,並chmod 664 -R theme-dir/*在目錄根目錄中的文件上運行它運行良好,但是當我執行以下操作時,子目錄中的所有文件現在都是這樣讀取的ls -l

?---------  ? ? ? ?            ? core_functions.php
?---------  ? ? ? ?            ? css
?---------  ? ? ? ?            ? custom_functions.php
?---------  ? ? ? ?            ? images
?---------  ? ? ? ?            ? import_settings.php
?---------  ? ? ? ?            ? js
?---------  ? ? ? ?            ? options_trim.php
?---------  ? ? ? ?            ? page_templates
?---------  ? ? ? ?            ? post_thumbnails_trim.php
?---------+ ? ? ? ?            ? shortcodes

我無法 cd 到任何子目錄,也無法刪除它們。我從來沒有看過這樣的事情,有人遇過類似的事情嗎?

答案1

存取目錄的內容(或更具體地說,除檔案名稱之外的檔案元資料)需要該目錄設定了執行位。

您的遞歸 chmod 刪除了該權限,因此您失去了該存取權限。如果您使用-R選項,chmod最好避免使用權限的數位版本,而是運行(以您所需的狀態為例)chmod -R ug=rwX,o=rX。大寫的 X 表示僅在至少具有一組的目錄或檔案上設定 X 位元x。另外,您可能想要使用 644 ( u=rwX,go=rX) ,除非您確實需要群組使用者寫入。

答案2

來自WordPress 文件

如果您具有伺服器的 shell 存取權限,則可以使用下列命令遞歸來變更檔案權限:

對於目錄:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

對於文件:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

相關內容