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