由于某种原因,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到任何子目录,我也不能删除它们。 我从来没有见过这样的事情,有人遇到类似的事情?

访问目录的内容(或者更具体地说,文件元数据除文件名外)要求该目录具有设置的执行位。

你的recursionchmod删除了这个权限,所以你失去了这个权限。 如果您使用的是chmod-R选项,则最好避免使用数字版本的权限,而是运行(使用您所需的状态作为示例) chmod -R ug=rwX,o=rX 。 这里的大写字母X表示仅将X位设置在至less有一个x集的目录或文件上。 除非你真的需要群组用户来写,否则你也可以使用644( u=rwX,go=rX )。

从WordPress的文档 :

如果您具有对服务器的shell访问权限,则可以使用以下命令以recursion方式更改文件权限:

对于目录:

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

对于文件:

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