Como Redefinir Manualmente Sua Senha de Administrador do WordPress
Perder o acesso à sua conta de administrador do WordPress não tem de significar perder o controlo do seu site. Se o fluxo padrão de e-mail “Perdeu a sua palavra-passe?” estiver quebrado — devido a configurações de e-mail incorretas, um endereço de e-mail inacessível ou um registo de utilizador corrompido — pode contorná-lo completamente redefinindo a palavra-passe diretamente ao nível da base de dados, do sistema de ficheiros ou da shell.
Este guia abrange quatro métodos testados em batalha: phpMyAdmin, FTP via functions.php, WP-CLI via SSH e o Script de Redefinição de Emergência do WordPress. Cada método é explicado com passos exatos, advertências de segurança e os cenários específicos onde é a escolha certa.
Quando o Fluxo de Redefinição Padrão Falha
Antes de recorrer a um método manual, compreenda por que razão a redefinição integrada falha. As causas mais comuns são:
- Entrega de e-mail do WordPress quebrada —
wp_mail()depende da funçãomail()do PHP ou de um plugin SMTP. Se nenhum estiver configurado, o e-mail de redefinição é descartado silenciosamente. - Sem acesso à caixa de entrada do e-mail registado — a conta foi criada com um endereço inativo.
- Tabela
wp_userscorrompida — raro, mas possível após uma migração falhada ou conflito de plugins. - Bloqueado completamente do wp-admin — plugins de proteção contra força bruta (Wordfence, Limit Login Attempts) podem bloquear o próprio endpoint de redefinição.
Identificar a causa raiz é importante porque alguns métodos (WP-CLI, phpMyAdmin) corrigem a palavra-passe sem tocar no sistema de e-mail, enquanto outros (o script de emergência) requerem acesso HTTP ao site.
Método 1: Redefinir a Palavra-passe via phpMyAdmin
Ideal para: Ambientes de alojamento partilhado onde o SSH não está disponível, mas o cPanel ou um painel de controlo semelhante está acessível.
O phpMyAdmin dá-lhe acesso direto de leitura/escrita à base de dados MySQL ou MariaDB que armazena todas as credenciais de utilizador do WordPress. As palavras-passe são armazenadas como hashes bcrypt (WordPress 6.x+) ou hashes MD5 (instalações legadas). O seletor de funções integrado do phpMyAdmin trata do hashing automaticamente.
Passo 1: Abrir o phpMyAdmin a partir do Seu Painel de Controlo
Inicie sessão no seu painel de controlo de alojamento — cPanel, DirectAdmin ou um painel personalizado. Localize a secção Bases de Dados e clique em phpMyAdmin. Se estiver num VPS com cPanel, o caminho é normalmente cPanel > Bases de Dados > phpMyAdmin.
Passo 2: Selecionar a Base de Dados do WordPress
Na barra lateral esquerda, clique no nome da base de dados associada à sua instalação do WordPress. Se não tiver a certeza de qual base de dados é a correta, abra wp-config.php no diretório raiz do seu site e procure a constante DB_NAME.
Passo 3: Abrir a Tabela wp_users
Expanda as tabelas da base de dados e clique em wp_users. Se a sua instalação utilizar um prefixo de tabela personalizado (definido por $table_prefix em wp-config.php), a tabela terá o nome <prefix>_users — por exemplo, site7_users.
Passo 4: Editar a Linha do Utilizador Administrador
- Encontre a linha onde
user_logincorresponde ao seu nome de utilizador administrador. Para a maioria das instalações padrão, esta é a linha comID = 1. - Clique em Editar (o ícone de lápis).
- Localize o campo
user_pass. - No menu suspenso Função ao lado de
user_pass, selecione MD5. - No campo Valor, escreva a sua nova palavra-passe em texto simples.
- Desloque-se para baixo e clique em Executar.
Nota técnica importante: Selecionar MD5 aqui é suficiente para o início de sessão imediato porque o WordPress realiza uma verificação MD5 legada no início de sessão e, em seguida, re-faz automaticamente o hash da palavra-passe utilizando o seu algoritmo phpass mais robusto ou bcrypt após autenticação bem-sucedida. Não precisa de gerar manualmente um hash bcrypt.
Passo 5: Verificar a Alteração
Navegue até à página de início de sessão do WordPress e inicie sessão com a nova palavra-passe. Se o início de sessão for bem-sucedido, o WordPress irá silenciosamente atualizar o hash na base de dados para o algoritmo atual.
Método 2: Redefinir a Palavra-passe via FTP Modificando functions.php
Ideal para: Situações onde o phpMyAdmin não está disponível, mas as credenciais FTP/SFTP estão acessíveis.
Este método injeta uma chamada de redefinição de palavra-passe diretamente no ciclo de execução do WordPress, adicionando temporariamente código ao ficheiro functions.php do tema ativo.
Passo 1: Ligar via FTP
Utilize um cliente FTP como FileZilla ou Cyberduck. Introduza o seu host FTP, nome de utilizador, palavra-passe e porta (21 para FTP simples, 22 para SFTP — prefira sempre SFTP quando disponível). Navegue até:
/public_html/wp-content/themes/<your-active-theme>/Para confirmar qual tema está ativo sem iniciar sessão no wp-admin, verifique a tabela wp_options no phpMyAdmin para a chave de opção template.
Passo 2: Descarregar e Editar functions.php
Descarregue functions.php para a sua máquina local. Abra-o num editor de código (VS Code, Sublime Text ou qualquer editor que preserve a codificação UTF-8 sem BOM). Adicione a seguinte linha no final do ficheiro:
<?php
// Temporary password reset — REMOVE IMMEDIATELY AFTER USE
add_action( 'init', function() {
wp_set_password( 'YourNewSecurePassword123!', 1 );
});Substitua 'YourNewSecurePassword123!' pela palavra-passe escolhida. O segundo argumento (1) é o ID do utilizador. Se a sua conta de administrador não tiver o ID 1, consulte primeiro a tabela wp_users para confirmar o ID correto.
Envolver a chamada em add_action( 'init', ... ) é mais seguro do que chamar wp_set_password() diretamente no nível superior do ficheiro, porque garante que as funções principais do WordPress estão totalmente carregadas antes da execução.
Passo 3: Carregar e Iniciar Sessão
Guarde o ficheiro e carregue-o de volta para o servidor, substituindo o original. Carregue qualquer página do seu site WordPress (mesmo a página inicial) para acionar o hook init e executar a alteração de palavra-passe. Em seguida, navegue até /wp-login.php e inicie sessão com a nova palavra-passe.
Passo 4: Remover o Código Imediatamente
Este passo é obrigatório. Deixar o código de redefinição em functions.php significa que cada carregamento de página redefine a palavra-passe para o valor codificado, criando uma vulnerabilidade de segurança crítica. Descarregue functions.php novamente, elimine as linhas que adicionou e volte a carregar.
Método 3: Redefinir a Palavra-passe via WP-CLI (Linha de Comandos SSH)
Ideal para: Programadores e administradores de sistemas com acesso SSH a um VPS ou servidor dedicado. Este é o método mais rápido e limpo.
O WP-CLI é a interface de linha de comandos oficial para o WordPress. Pode gerir utilizadores, plugins, temas e operações de base de dados sem utilizar um navegador. Se estiver a executar o WordPress num plano de Alojamento VPS ou num Servidor Dedicado, o WP-CLI está quase certamente disponível ou é trivialmente instalável.
Passo 1: Verificar se o WP-CLI Está Instalado
wp --infoSe o comando não for encontrado, instale-o:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wpPasso 2: Navegar até ao Diretório Raiz do WordPress
cd /var/www/htmlAjuste o caminho para corresponder ao seu diretório raiz real. Pode verificar se está no diretório correto verificando a existência de wp-config.php:
ls wp-config.phpPasso 3: Redefinir a Palavra-passe
wp user update 1 --user_pass="YourNewSecurePassword123!" --allow-rootO sinalizador --allow-root é necessário se estiver a executar o comando como utilizador root. Substitua 1 pelo ID de utilizador real se necessário. Para consultar primeiro o ID correto:
wp user list --fields=ID,user_login,user_email --allow-rootPasso 4: Confirmar a Atualização
O WP-CLI irá apresentar Success: Updated user 1. após a conclusão. Pode verificar imediatamente a alteração:
wp user get 1 --field=user_pass --allow-rootIsto devolve o novo hash bcrypt, confirmando que o registo foi atualizado. Inicie sessão no wp-admin para concluir o processo.
Caso especial — instalações multisite: No WordPress Multisite, prefixe o comando com --url=yoursite.com para direcionar o subsite correto:
wp user update 1 --user_pass="YourNewSecurePassword123!" --url=yoursite.com --allow-rootMétodo 4: Redefinir a Palavra-passe via Script de Emergência do WordPress
Ideal para: Cenários onde tem acesso FTP mas sem SSH, sem phpMyAdmin, e o método functions.php é impraticável (por exemplo, o tema ativo é um tema de blocos sem functions.php).
O Codex do WordPress fornece um script PHP de redefinição de emergência autónomo (emergency.php) que funciona independentemente da instalação do WordPress. Solicita uma nova palavra-passe, faz o hash corretamente e escreve-a diretamente na base de dados utilizando as credenciais de wp-config.php.
Passo 1: Obter o Script
Descarregue o script do repositório oficial do WordPress no GitHub ou do Codex. A fonte canónica é:
https://codex.wordpress.org/Resetting_Your_Password#Through_the_emergency_password_reset_scriptGuarde o ficheiro como emergency.php.
Passo 2: Carregar para a Raiz do WordPress
Utilizando o seu cliente FTP, carregue emergency.php para o mesmo diretório que contém wp-config.php — normalmente /public_html/ ou /var/www/html/.
Passo 3: Executar o Script num Navegador
Abra um navegador e navegue até:
https://yourdomain.com/emergency.phpO script irá ler wp-config.php automaticamente para obter as credenciais da base de dados e, em seguida, apresentar um formulário para introduzir e confirmar uma nova palavra-passe. Submeta o formulário para aplicar a alteração.
Passo 4: Eliminar o Script Imediatamente
Isto é crítico. O script não tem camada de autenticação — qualquer pessoa que conheça o URL pode utilizá-lo para assumir o controlo do seu site. Elimine-o no momento em que recuperar o acesso:
rm /var/www/html/emergency.phpOu elimine-o via FTP. Verifique a eliminação tentando carregar o URL novamente — deve devolver um erro 404.
Comparação de Métodos
| Método | Requer SSH | Requer FTP | Requer Acesso à BD | Modifica Ficheiros do Tema | Velocidade | Risco de Segurança se Deixado Ativo |
|---|---|---|---|---|---|---|
| — | — | — | — | — | — | — |
| phpMyAdmin | Não | Não | Sim (via painel) | Não | Rápido | Nenhum |
| `functions.php` via FTP | Não | Sim | Não | Sim | Médio | Crítico |
| WP-CLI via SSH | Sim | Não | Não | Não | Mais Rápido | Nenhum |
| Script de Emergência | Não | Sim | Não | Não | Médio | Crítico |
Reforço de Segurança Após uma Redefinição de Palavra-passe
Recuperar o acesso é apenas o primeiro passo. Uma redefinição manual forçada muitas vezes sinaliza um problema mais profundo — uma conta comprometida, um servidor mal configurado ou uma pilha de e-mail quebrada. Resolva estes problemas imediatamente:
- Audite os inícios de sessão recentes. Verifique
wp_usermetaparasession_tokenspara ver as sessões ativas. Destrua todas as sessões comwp user session destroy --all --allow-root. - Rotacione as chaves secretas. Gere novos valores em
https://api.wordpress.org/secret-key/1.1/salt/e substitua as constantes correspondentes emwp-config.php. Isto invalida todos os cookies existentes. - Corrija a entrega de e-mail do WordPress. Instale um plugin SMTP (WP Mail SMTP, Postman SMTP) e ligue-o a um serviço de e-mail transacional (SendGrid, Mailgun, Amazon SES) para que o fluxo de redefinição padrão funcione no futuro.
- Ative a autenticação de dois fatores. Plugins como WP 2FA ou Google Authenticator adicionam uma segunda camada de verificação que torna os bloqueios por força bruta muito menos prováveis.
- Reveja as permissões de ficheiros.
wp-config.phpdeve ser640ou600. O ficheirofunctions.phpdeve ser644. Ficheiros com permissão de escrita para todos (777) são um sinal de alerta imediato. - Verifique contas de administrador não autorizadas. Execute
wp user list --role=administrator --allow-roote remova quaisquer contas que não reconheça.
Para ambientes de produção alojados num Servidor Dedicado, reveja também /var/log/auth.log (ou /var/log/secure em sistemas baseados em RHEL) para tentativas de força bruta SSH que possam ter precedido o bloqueio.
Se o seu site lida com dados sensíveis de utilizadores ou transações de e-commerce, complemente o seu início de sessão reforçado com um Certificado SSL devidamente emitido para garantir que as credenciais nunca são transmitidas em texto simples.
Matriz de Decisão: Qual Método Deve Utilizar?
Utilize esta lista de verificação para selecionar o método correto para a sua situação:
- Tem acesso ao cPanel ou DirectAdmin — utilize o phpMyAdmin (Método 1). É o mais seguro e não requer modificações de ficheiros.
- Tem FTP/SFTP mas sem painel de base de dados — utilize
functions.php(Método 2), mas defina um lembrete no calendário para remover o código nos cinco minutos após iniciar sessão. - Tem acesso SSH a um VPS ou servidor dedicado — utilize o WP-CLI (Método 3). É o mais limpo, não deixa código residual e suporta scripting para automação.
- Tem FTP mas o tema ativo não tem
functions.php(temas de blocos, temas FSE) — utilize o Script de Emergência (Método 4) e elimine-o antes de fechar o separador do navegador. - Nenhuma das opções acima está disponível — contacte a equipa de suporte do seu fornecedor de alojamento. Eles podem redefinir a palavra-passe da base de dados ao nível da infraestrutura.
FAQ
P: A redefinição da palavra-passe via phpMyAdmin termina as sessões ativas?
Não. Alterar user_pass na base de dados não invalida os cookies de autenticação do WordPress existentes. Para forçar o término de todas as sessões, deve também atualizar as chaves secretas em wp-config.php ou utilizar wp user session destroy --all.
P: A minha tabela wp_users está vazia ou em falta. O que aconteceu?
Isto indica normalmente uma migração de base de dados falhada, uma importação corrompida ou um $table_prefix mal configurado em wp-config.php. Verifique se o prefixo corresponde aos nomes de tabela reais no phpMyAdmin. Se a tabela estiver genuinamente em falta, restaure a partir de uma cópia de segurança da base de dados.
P: Posso utilizar MD5 no phpMyAdmin mesmo que o WordPress agora utilize bcrypt?
Sim. A camada de autenticação do WordPress deteta palavras-passe com hash MD5 no início de sessão e aceita-as por compatibilidade retroativa, re-fazendo imediatamente o hash da palavra-passe utilizando o algoritmo atual (phpass/bcrypt). O hash MD5 é armazenado apenas temporariamente até ao próximo início de sessão bem-sucedido.
P: O comando WP-CLI wp user update devolve um erro de permissões. Como posso corrigir?
Isto significa normalmente que o WP-CLI está a ser executado como um utilizador de sistema diferente do proprietário dos ficheiros do WordPress. Mude para o utilizador correto com sudo -u www-data wp user update ... ou adicione o sinalizador --allow-root se estiver a operar como root.
P: É seguro deixar o script de emergência no servidor durante algumas horas?
Não. O script de emergência não tem qualquer autenticação. Qualquer visitante que descubra ou adivinhe o URL pode utilizá-lo para redefinir a sua palavra-passe de administrador e assumir o controlo total do seu site. Elimine-o imediatamente após a utilização — trate-o com a mesma urgência que uma chave privada exposta.
