En numerosas ocasiones es necesario establecer permisos específicos a todos los directorios que existen dentro de una ruta en la estructura de archivos, así como a todos los archivos almacenados en esos directorios.
Si pretendemos por ejemplo que los ficheros únicamente sean leídos por el grupo y otros y que el propietario tenga total control, configuración muy habitual en sitios webs o cuentas en servidores, un simple chmod 644 * -R no funciona como se desea.
Esto se debe a que para acceder a los ficheros, los directorios han de tener permiso de acceso y lectura (r-x) para el grupo y otros, y lectura, ecritura y acceso (rwx) para el propietario, en formato numérico sería: 755. Ya que de lo contrario, los miembros del grupo y el resto no podrían acceder a ficheros a los que tienen permiso de lectura.
Tampoco es posible poner un simple chmod 755 * -R porque daría permisos de ejecución a todos los archivos dentro de todos los directorios y como hemos mencionado únicamente buscamos permiso de lectura para el grupo y otros al acceder a los ficheros.
Para solucionar este problema os presento un script muy sencillo, que hace uso del comando find para poder hacer distinción entre ficheros y directorios y aplicar a cada grupo los permisos que requieren:
# cat camb_permisos.sh
for archivo in `find . -type f`;
do
chmod 0644 $archivo -v;
done
for directorio in `find . -type d`;
do
chmod 0755 $directorio -v;
done
#
No obstante, si queréis el script lo podéis descargar aquí: camb_permisos.sh.
Por último, sobra decir que si os interesan permisos diferentes para archivos o directorios bastará con modificar la codificación numérica 0644 (en el caso de ficheros) ó 0755 (en el caso de directorios).







0 Comentarios ↓
Jaluro
¡Aprovecha y sé el primero en dejar uno!
Deja tu comentario
Por favor, no uses un lenguaje inapropiado, spam o cualquier otro tipo de conducta inadecuada. De lo contrario me reservo el derecho de eliminar y/o modificar aquellos comentarios que contengan algo de lo citado anteriormente.