コード例 #1
0
ファイル: comando_instalacion.php プロジェクト: emma5021/toba
 /**
  * Cambia los permisos de los archivo para que el usuario Apache cree directorios y pueda crear y leer carpetas navegables 
  * @consola_parametros [-u usuario apache, se asume www-data] [-g grupo de usuarios, no se asume ninguno]
  * @gtk_icono  password.png
  */
 function opcion__cambiar_permisos()
 {
     //Si es produccion dar permisos solo a apache, sino a usuario y grupo
     $subject = $this->get_instalacion()->es_produccion() ? "u" : "ug";
     $param = $this->get_parametros();
     $grupo = isset($param['-g']) ? $param['-g'] : null;
     $usuario = isset($param['-u']) ? $param['-u'] : 'www-data';
     $toba_dir = toba_dir();
     $this->consola->subtitulo('Cambiando permisos de archivos navegables');
     $comandos = array(array("chown -R {$usuario} {$toba_dir}/www", "Archivos navegables comunes:\n"), array("chmod -R {$subject}+rw {$toba_dir}/www", ''), array("chown -R {$usuario} {$toba_dir}/instalacion", "Archivos de configuración:\n"), array("chmod -R {$subject}+rw {$toba_dir}/instalacion", ''), array("chown -R {$usuario} {$toba_dir}/temp", "Archivos temporales comunes:\n"), array("chmod {$subject}+rw {$toba_dir}/temp", ''));
     foreach (toba_modelo_instalacion::get_lista_proyectos() as $proyecto) {
         $id_proyecto = basename($proyecto);
         $comandos[] = array("chown -R {$usuario} {$proyecto}/www", "Archivos navegables de {$id_proyecto}:\n");
         $comandos[] = array("chmod -R {$subject}+rw {$proyecto}/www", '');
         $comandos[] = array("chown -R {$usuario} {$proyecto}/temp", "Archivos temporales de {$id_proyecto}:\n");
         $comandos[] = array("chmod -R {$subject}+rw {$proyecto}/temp", '');
     }
     foreach ($comandos as $comando) {
         $this->consola->mensaje($comando[1], false);
         $this->consola->mensaje("   " . $comando[0] . exec($comando[0]));
     }
     if (isset($grupo)) {
         $comando = "chgrp -R {$grupo} {$toba_dir}";
         $this->consola->subtitulo("\nCambiando permisos globales para el grupo {$grupo}");
         $this->consola->mensaje("   " . $comando . exec($comando));
         $comando = "chmod -R g+rw {$toba_dir}";
         $this->consola->mensaje("   " . $comando . exec($comando));
     }
 }