Deseaba tener una carpeta y un archivo determinados y todos los descendientes con permisos de escritura.
Deseaba que a TODOS los archivos y carpetas se les pudieran otorgar recursivamente los siguientes permisos: 777
Entonces lo intenté:
chmod -r 777 ~/Folder/app/
Luego obtuve algo como:
chmod: 777: No such file or directory
Luego fui ~/Folder/app/
e intenté hacer una ls -la
verificación de permisos.
Yo obtengo:
.: Permission Denied
Entonces hice:
sudo ls -la
y luego he visto que... la carpeta especial tiene: 777 permisos, pero los demás no.
¿Cómo puedo revertir esto sin eliminar la ~/Folder/app/
carpeta?
Quiero decir: ¿Cómo podemos permitir que ls vuelva a funcionar sin escribir sudo dentro de esa carpeta? ¿Y de alguna manera arreglar el desastre que hice usando -r en lugar de -R?
Respuesta1
Como señalé en mis comentarios, es necesario suministrar --recursive
o -R
(R mayúscula) para chmod
que funcione de forma recursiva.
-r
(R minúscula) significaeliminar permisos de lectura(al menos a mi entender). Esta operación luego se aplicaría a lapróximoparámetro, que es 777
.
Entonces su llamada eliminaría los permisos de lectura de un archivo llamado 777
. Ese archivo no existe, por eso el mensaje de error
chmod: 777: No such file or directory
No estoy seguro si chmod
luego abortó o si intentóeliminar permisos de lecturadesde elpróximoparámetro ~/Folder/app/
.
En este último caso, inclusoeliminarleer los permisos de su carpeta, haciendo exactamente loopuestode lo que querías en primer lugar :)
Ahora, para resolver esto, simplemente use elcorrectosintaxis:
chmod --recursive 777 ~/Folder/app/
Eso agregará nuevamente los permisos de lectura (y aplicará su modo 777 en todos los elementos secundarios de esa carpeta). Por favor tome nota deEl comentario de Dennis Williamson, casi nunca querrás establecer un modo de 777.