¿Problemas con los permisos?

¿Problemas con los permisos?

de CFerrera Educa -
Número de respuestas: 7

Hola,

al intentar crear una carpeta (llamada "documentos") para subir algunos archivos aparece el siguiente mensaje de error:


Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 32128 is not allowed to access /home/cferrera/moodledata/2 owned by uid 99 in /home/cferrera/public_html/campus/lib/moodlelib.php on line 2005

ERROR: Could not find or create a directory (/home/cferrera/moodledata/2///documentos)

Error: could not create documentos


He revisado y modificado permisos pero me sigue dando ese error. Por otra parte he revisado moodlelib en la linea que me indica:


$dirarray = explode("/", $directory);

    foreach ($dirarray as $dir) {
        $currdir = "$currdir/$dir";
        if (! file_exists($currdir)) {
            if (! mkdir($currdir, $CFG->directorypermissions)) {
                if ($shownotices) {
                    notify("ERROR: Could not find or create a directory ($currdir)");
                }
                return false;
            }
            @chmod($currdir, $CFG->directorypermissions);  // Just in case mkdir didn't do it
        }
    }


Supongo que el problema viene de ese "directorypermissions" pero no se cómo solucionarlo, ¿podéis ayudarme?.

Muchas gracias. Saludos.

Carlos Ferrera

Promedio de valoraciones: -
En respuesta a CFerrera Educa

Re: ¿Problemas con los permisos?

de Fermí Cueva -

Hola Carlos,

No sé si pretendes subir moodle a tu propio servidor o a uno público.

Si el caso es el primero la solución consiste en modificar tu archivo php.ini.

Allí encontrarás una línea así:

safe mode = On;

debes ponerla en off.

Si, por el ocntrario pretendes subirlo a un servidor público la cosa se complica.

Deberás ponerte en contacto con ellos para que lo activen, y no suelen querer hacerlo por seguridad (comodidad?)

Espero que te sirve,

Fermin Cueva

En respuesta a Fermí Cueva

Re: ¿Problemas con los permisos?

de CFerrera Educa -

Hola Fermin,

ante todo muchas gracias por responder.

El problema es que no me permite crear carpetas desde el Moodle, concretamente desde el comando "Archivos" o "Archivos del sitio" de los paneles de administración del campus o del curso.

El problema me lo está dando un servidor, que no es mio, en el que estoy alojando el campus. El servidor es linux con Apache 1.3.33 (Unix) y PHP 4.3.10

A raíz de tu mensaje, he probado en mi propio PC. En este tengo un Win 2000 Server y EasyPHP. Efectivamente tenia "safe mode" en "off". Pero lo he cambiado a "on" y me sigue permitiendo crear carpetas desde el Moodle. Esto ya no lo entiendo. ¿Este "safe mode" que hace, controlar que no se escriba en disco desde scripts de PHP?.

Lo cierto es que en mi PC, ponga como ponga el "safe mode", siempre puedo crear carpetas desde moodle. ¿cómo explicar esto?

Tal como indicas, no tengo acceso al php.ini del servidor donde se aloja el campus, por lo que no puedo comprobar el "safe mode". Si mi problema viene de aquí, imagino que será un problema muy común en muchos moodles, y, como bien dices, habrá muchos administradores que nieguen el cambio del "safe mode". Entonces, ¿que es lo que se hace en estos casos? ¿no existe un solución alternativa?

Perdón por la extensión del mensaje. Muchas gracias.

Carlos Ferrera

En respuesta a CFerrera Educa

Re: ¿Problemas con los permisos?

de Fermí Cueva -

Hola Carlos,

En cuanto al servidor público, lo que suele hacer la gente es cambiarse de servidor si no consigue que le desactiven el safe mode.

En cuanto a qué es lo que hace safe mode, te adjunto un archivo con la lista de funciones que modifica.

Espero que te sirva,

Fermin Cueva

En respuesta a Fermí Cueva

Re: ¿Problemas con los permisos?

de CFerrera Educa -

Hola,

muchas gracias Fermin.

Os cuento: He enviado un mensaje a los administradores del servidor mostrándoles el error:


 

Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 32128 is not allowed to access /home/cferrera/moodledata/2 owned by uid 99 in /home/cferrera/public_html/campus/lib/moodlelib.php on line 2005

ERROR: Could not find or create a directory (/home/cferrera/moodledata/2///documentos)

Error: could not create documentos


A lo cual me han respondido que elerror que es debido a que un script propiedad de mi usuario está intentando crear un directorio bajo /home/XXXXXXXX/moodledata/2, que es en realidad propiedad del usuario 'nobody' y por tanto safemode evita la creación de tal directorio. Me indican que el problema se puede evitar simplemente cambiando los permisos del directorio /home/XXXXXXXX/moodledata/2 y asignando como propietario a mi usuario. Me indican que, si lo deseo, pueden realizar tal modificación y ver si eso soluciona los problemas.

¿Qué os parece esta solución?. Al mirar yo mismo, desde cpanel, los permisos del directorio moodledata, aparece "757", y los de moodledata/2 son "777". Hasta donde yo llego, unos permisos 777 son completos ¿no?. Además, probé a cambiar el de moodledata a de "757" a "777" y tampoco me funcionaba....en fin, que me pierdo ¿os parece buena solución la que me proponen?

Por otra parte, si no es así,.... conocéis qué alojamientos no me dan problemas (y sean baratos risa).

Otra cosilla: el .htaccess puede ser una solución? o nada de nada.

Otra vez muchas gracias. Saludos.

Carlos Ferrera

En respuesta a CFerrera Educa

Re: ¿Problemas con los permisos?

de Juan Muñoz Barbo -
Hola Carlos, creo que tú mismo propones una buena solución al problema.

intenta esto:

el directorio moodledata/ ( y todo lo que cuelga   a 777 , ya que puedes tener subdirectorios con otros permisos e impiden escribir en ellos ) y en moodledata/ entras el fichero .htaccess  con    deny from all  


saludos.


Juan.




En respuesta a CFerrera Educa

Re: ¿Problemas con los permisos?

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Carlos,

el problema que comentas se produce por tener el modo SAFE_MODE de php activado. Este modo hace que cualquier configuración de permisos que pongas al directorio moodledata no tenga efecto alguno.

Con el SAFE_MODE activado el único usuario que puede escribir ficheros en el servidor es el usuario propietario de los quiones que están siendo ejecutados.

Como el propietario de dichos guiones (los de la instalación de Moodle) eres tú, pero el usuario que escribe los ficheros es nobody, el modo SAFE_MODE dice que no hay concordancia de usuarios y, por tanto, te da ese error.

Cambiando el propietario de TODO lo que hay en el directorio moodledata es una solución temporal, ya que, en cuanto Moodle cree alguna carpeta nueva (que será propiedad del usuario nobody otra vez) e intente crear cualquier fichero en ella, volvera a aparecerte el error.

La única solución es que todos los ficheros de moodle y de moodledata sean propiedad de nobody. Así siempre habrá concordancia de usuarios. Pero esto presenta dos problemas:

- No podrás actualizar Moodle, porque ya no eres el propietario de sus ficheros.
- No podrás manipular el directorio moodledata, por idénticas razones.

La única solución viable, si no me equivoco, es conseguir que te desactiven el SAFE_MODE de tu servidor virtual (si tienes un servidor virtual puede hacerse) o, si puedes, cambiar a otro hosting que no te ponga ese tipo de limitaciones.

Pero con el SAFE_MODE activado, sencillamente, Moodle no puede trabajar correctamente por su necesidad de crear directorios y ficheros.

Ciao sonrisa