我在設定一些 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 {} \;