Bien conocido es la problemática que se le presenta al desarrollador de aplicaciones web cuando, por ejemplo, necesita asignar permisos a un árbol de directorios lo suficientemente profundo como para que hacerlo elemento por elemento sea una tarea tediosa cuando el proveedor de servicios de hosting no ofrece acceso por SSH y sólo dispone de acceso por FTP al sistema de ficheros del plan contratado.
Casi ningún cliente de FTP permite asignación de permisos de manera recursiva o en profundidad, esto es, a un directorio y a todo lo que esté bajo el mismo; yo al menos no he encontrado ninguno que lo haga.
Entonces, ¿cuál es la solución para agilizar este procedimiento?
Pues si habéis sido listos y habéis escogido Linux para vuestro plan de alojamiento y éste permite ejecución de scripts, estáis de enhorabuena, pues tanto Perl como PHP poseen funciones que permiten cambiar permisos a ficheros y directorios del sistema en el que se estén ejecutando.
A continuación os dejo un sencillo script en PHP que asigna permisos 755 a todos los directorios y 644 a todos los ficheros:
// Comenzamos desde el directorio donde se ejecuta este script $dir = "./"; $dirModes = 0755; $fileModes = 0644; $d = new RecursiveDirectoryIterator( $dir ); foreach (new RecursiveIteratorIterator($d, 1) as $path) { if ($path->isDir()) { chmod($path, $dirModes); } else if (is_file($path)) { chmod($path, $fileModes); } }