
Estoy intentando cambiar de forma recursiva los permisos de todos los archivos y directorios de mi proyecto.
Encontre unpublicar en el foro de magentodiciendo que puedo usar estos comandos:
find ./ -type f | xargs chmod 644
find ./ -type d | xargs chmod 755
chmod -Rf 777 var
chmod -Rf 777 media
Funcionó para find ./ -type d | xargs chmod 755
.
El comando find ./ -type f
devolvió muchos archivos, pero obtengo chmod: access to 'fileXY.html' not possible: file or directory not found
todos los archivos si ejecuto find ./ -type f | xargs chmod 644
.
¿Como puedo resolver esto?
PD: Sé que recomendó usar el permiso 777 para mi carpeta var y media, lo cual es un riesgo para la seguridad, pero ¿qué más deberíamos usar?
Respuesta1
Supongo que te estás encontrando con archivos cuyos nombres contienen caracteres que provocan xargs
su división.p.ejespacio en blanco. Para resolver eso, suponiendo que esté usando una versión find
que xargs
admita las opciones apropiadas (que se originaron en las variantes de GNU y no están especificadas por POSIX), debe usar los siguientes comandos en su lugar:
find . -type f -print0 | xargs -0 chmod 644
find . -type d -print0 | xargs -0 chmod 755
o mejor aún,
chmod -R a-x,a=rX,u+w .
que tiene las ventajas de ser más corto, utilizar un solo proceso y estar respaldado porPOSIXchmod
(veresta respuestapara detalles).
Su pregunta sobre media
y var
es bastante amplia; si está interesado en respuestas específicas, le sugiero que la haga como una pregunta separada con más información sobre cuál es su uso de los directorios.
Respuesta2
Qué tal si:
find ./ -type d -exec chmod 755 {} +
esta es la solución portátil canónica que se ocupa incluso de las nuevas líneas en los nombres de archivos.