Me he encontrado al intentar actualizar unos plugins de un nuevo wordpress que al hacerlo me pedía los «datos de conexión», algo que me ha parecido raro porque generalmente no suele hacerlo.

Tras bucear un poco en el código me he dado cuenta que en la función get_filesystem_method() de wp-admin/includes/file.php (que se llama desde wp-admin/includes/plugin.php, encargada de actualizar el plugin cuando se lo pedimos) se comprueba que el fichero que se está ejecutando tiene el mismo identificador de usuario que el proceso que está ejecutando la petición.

Esto es así en la amplia mayoría de los casos y no dará problemas, sobre todo si trabajamos con un hosting preparado. Pero si esto ocurre, la opción más rápida sería cambiar el uid de usuario de todos los ficheros de vuestro wordpress al usuario con el que se ejecuta apache. Es decir, partiendo de que el usuario de apache es www-user y vuestro wordpress está en /var/www/wordpress, sería usar el comando:

chown -R www-user /var/www/wordpress