PHPMyAdmin – Error de permisos

Cuando creamos el archivo de configuración para seguridad de los datos de conexión o variables (en caso de que se encuentre automático el acceso a la base de datos) se bloquea el acceso hasta que cuente con los permisos apropiados.

Nos muestra este mensaje “Wrong permissions on configuration file, should not be world writable!”.

La solución obvia es poner los permisos apropiados (en Windows no son verificados), en Linux hay que poner los permisos con este comando:

sudo chmod a-w config.inc.php

ó

sudo chmod 705 config.inc.php

Bien, pero habemos gente con necesidades medio extrañas… por cuestiones de trabajo y escuela navego entre Windows y Linux, tengo una partición NTFS en la que desde Linux no puedo poner permisos, si es tu caso, sigue leyendo…

Para poder acceder, pues no hay otra cosa más que modficar el código, el archivo que buscamos se encuentra en la carpeta “libraries” y el archivo se llama “Config.class.php”.

Ahí, hay que encontrar la función “function checkPermissions()” que se encuentra en mi versión de PHPMyAdmin (3.3.7) en la línea 495.

    function checkPermissions()
    {
        // Check for permissions (on platforms that support it):
        if ($this->get('CheckConfigurationPermissions')) {
            $perms = @fileperms($this->getSource());
            if (!($perms === false) && ($perms & 2)) {
                // This check is normally done after loading configuration
                $this->checkWebServerOs();
                if ($this->get('PMA_IS_WINDOWS') == 0) {
                    $this->source_mtime = 0;
                    die('Wrong permissions on configuration file, should not be world writable!');
                }
            }
        }
    }

y hay que comentar el die para que no “muera” PHP en el intento de checar permisos

    function checkPermissions()
    {
        // Check for permissions (on platforms that support it):
        if ($this->get('CheckConfigurationPermissions')) {
            $perms = @fileperms($this->getSource());
            if (!($perms === false) && ($perms & 2)) {
                // This check is normally done after loading configuration
                $this->checkWebServerOs();
                if ($this->get('PMA_IS_WINDOWS') == 0) {
                    $this->source_mtime = 0;
                    //die('Wrong permissions on configuration file, should not be world writable!');
                }
            }
        }
    }

Author: Miguel González López

Software Engineer

4 thoughts on “PHPMyAdmin – Error de permisos”

  1. Gracias!

    Exactamente el caso de muchos que tenemos VM de linux corriendo sobre Windows con carpetas compartidas (usualmente para desarrollo).

  2. Gracias!
    En mi caso, a dia de hoy con el último vagrant y demás ha cambiado un poco la película:

    Como no puedo cambiar los permisos del archivo (en mi caso está en www\default\database-admin\libraries\Config.php)

    he comentado la comprobación de permisos (adjunto código – linea 1154) y parece que phpmyadmin va ya perfecto!

    Gracias de nuevo!

    public function checkPermissions()
    {
    // Check for permissions (on platforms that support it):
    /*if ($this->get(‘CheckConfigurationPermissions’)) {
    $perms = @fileperms($this->getSource());
    if (!($perms === false) && ($perms & 2)) {
    // This check is normally done after loading configuration
    $this->checkWebServerOs();
    if ($this->get(‘PMA_IS_WINDOWS’) == 0) {
    $this->source_mtime = 0;
    PMA_fatalError(
    __(
    ‘Wrong permissions on configuration file, ‘
    . ‘should not be world writable!’
    )
    );
    }
    }
    }*/
    }

  3. muchas gracias en mi caso era el archivo config.php que esta en
    opt/lampp/phpmyadmind/libreries/->config.php

    Fue de gran ayuda.

  4. En el archivo libraries/config.default.php aproximadamente en la línea 3000 encontrarán esto:
    $cfg[‘CheckConfigurationPermissions’] = true;
    Cambiar el true por false y eso es todo.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.