chmod -R hace que los archivos en carpetas secundarias sean ilegibles por algún motivo

chmod -R hace que los archivos en carpetas secundarias sean ilegibles por algún motivo

Estaba ajustando los permisos al configurar algunos temas de WordPress y ejecuté. chmod 664 -R theme-dir/*Funcionó bien en los archivos en la raíz del directorio, pero todos los archivos en los subdirectorios ahora se leen así cuando ls -l:

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

No puedo acceder a ninguno de los subdirectorios y tampoco puedo eliminarlos. Nunca había visto algo así, ¿alguien se ha topado alguna vez con algo similar?

Respuesta1

Acceder al contenido (o más específicamente a los metadatos del archivo, excepto el nombre del archivo) de un directorio requiere que el directorio tenga establecido el bit de ejecución.

Su chmod recursivo eliminó ese permiso, por lo que perdió ese acceso. Si está utilizando la -Ropción de, chmodes mejor evitar usar la versión numérica de los permisos y, en su lugar, ejecutar (usando el estado deseado como ejemplo) chmod -R ug=rwX,o=rX. La X mayúscula significa establecer el bit X solo en directorios o archivos que tengan al menos un xconjunto. También es posible que desee utilizar 644 ( u=rwX,go=rX) a menos que realmente necesite que los usuarios del grupo escriban.

Respuesta2

Desde eldocumentación de wordpress:

Si tiene acceso de shell a su servidor, puede cambiar los permisos de los archivos de forma recursiva utilizando los siguientes comandos:

Para directorios:

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

Para archivos:

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

información relacionada