Como algunos sabran para poder asignar permisos a los archivos y directorios en linux se utiliza el comando chmod, pero este no sabe reconocer si lo que estamos cambiando es un archivo o un directorio a menos claro que lo indiquemos a mano, pero por ejemplo al ejecutar:
$ chmod -R 777 /directorio
Aquí el comando funciona de forma recursiva y asignara los permisos 777 a todo fichero y directorio que encuentre dentro del directorio «directorio», lo cual es bastante util, pero por ejemplo si lo que nos interesa es solo asigarle esos permisos a los archivos entonces podemos ayudarnos con el comando fin y la orden seria de la siguiente manera:
find -type f -exec chmod -R 777 {} \;
Con esto le damos permisos 777 solamente a los archivos ya que el comando find buscara solamente archivos, esto es especificado en el argumento -type f.
Ahora si lo que queremos es aplicar solamente a los directorios seria así:
find -type d -exec chmod -R 664 {} \;
En este caso el comando find buscara solo los directorios.
En este ejemplo no especifique la ruta a buscar de find ya que supondre que vamos a buscar dentro del directorio en el cual nos encontremos en ese momento, ahora si quieren un directorio especifico que no este dentro de la ruta relativa al promp seria así:
find /directorio/subdirectorio -type f -exec chmod -R 664 {} \;
El comando find tiene muchas mas funciones que se podrían utilizar como por ejemplo el parámetro -maxdepth, que desciende según le indiquemos cuantos niveles, esto es útil ya que si solo queremos asignar permisos a los archivos de un directorio pero no a los que están en los demás subdirectorios, podríamos hacer lo siguiente:
find -maxdepth 1 -type f -exec chmod -R 664 {} \;
Hay dejo que le sigan experimentando, para que vean que tan útil y poderosa es la consola de linux.