Probando el otro día una aplicación web para la gestión de un centro educativo (de la que espero poder hablar, con «conocimiento» de causa, uno de estos días…) se me hacía necesario cambiar los permisos de acceso de ficheros y directorios según las indicaciones del autor de la aplicación.
Como dicen que la pereza es la madre de tods los «vicios» (y aquí hay mucho «vicio»), pues directamente apliqué el truco que aquí os dejo (esperando que os sea de utilidad y a mi me sirva como recordatorio la próxima vez) con tal de no ir, uno a uno, cambiándolo manualmente.
Gracias al comando find (y su parámetro exec) es realmente sencillo.
Bastará lanzar un
find . -type d -exec chmod 0755 {} \;
para hacer un chmod con permisos 755 a todos los directorios (-type d) hijos de tu directorio actual (ojo con el \; del final, no olvides incluirlo para que funcione bien el exec)
o un
find . -type f -exec chmod 0644 {} \;
para asignar los permisos 644 a todos los ficheros (-type f) independientemente del directorio hijo en el que se encuentren.
Fácil ¿verdad? Pueess… ¿¡¿entonces por qué sueles hacerlo a mano?!? 😉
Conclusión
Pequeño apunte que te será de ayuda a la hora de cambiar por lotes los permisos de todos los ficheros y directorios de una carpeta.
Y tú…
- ¿Sueles cambiar los permisos a mano?
- ¿Conocías el parámetro type del comando find?
- ¿Sueles usar find para ejecutar (exec) comandos sobre los ficheros encontrados?
- ¿Qué usos curiosos de find conoces?
- …
Xargs sí pero no find y exec. Gracias por el truco.
Me gustaMe gusta
De nada D. Rafael
El parámetro exec del comando find es un clásico de este rincón al que le tengo mucho aprecio 😅
Me gustaMe gusta
Hola, yo suelo usar el comando chown -R usuario:grupo carpeta, y así cambio el propietario (grupo) de una carpeta (recursivo) y listo. Me resulta más cómodo que recordar los números 755 o 644 para saber lo que significaba, je, je.
Un saludo.
Me gustaMe gusta
Sí que es más cómodo compañero pero… sólo si no tienes que cambiar el propietario de chorrocientas carpetas desperdigadas (y ocultas) a cualquier «profundidad»
Sospecho que no he sabido transmitir la idea correctamente amigo Julio 😅
Me gustaMe gusta
Esos dos se combinan en uno solo:
chmod -R u=rwX,g=rX,o=rX
La X mayúscula hace que solo se aplique a directorios
Me gustaMe gusta
Muy buena aportación, sí señor… gracias compañero 👍
Me gustaMe gusta