Aplicar permisos de forma recursiva cuando sólo disponemos de FTP, ¿la solución? PHP

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

Tagged with  
, , ,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

HTML tags are not allowed.