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);
}
}





