Wordpress

wp user update: resetar a senha do admin do WordPress pelo terminal

Você clicou em perdeu a senha, o WordPress disse que enviou o link e o e-mail nunca chega, porque o servidor manda mail pela função nativa do PHP e o provedor descarta. Se você tem SSH na máquina, dá pra trocar a senha do administrador em dois comandos e voltar pro painel agora.

Descubra o ID certo antes de trocar

Em site antigo quase sempre existe mais de um administrador, e o ID 1 pode ser um usuário de migração que ninguém usa. Liste primeiro:

cd /var/www/seusite/html

sudo -u www-data wp user list --role=administrator --fields=ID,user_login,user_email

sudo -u www-data wp user update 7 --user_pass='TrocaEssaSenhaDepois2026' --skip-email

Esse caminho é mais seguro que um UPDATE na tabela wp_users porque o WP-CLI passa pelas funções internas do WordPress: o hash sai do próprio core, que desde a 6.8 usa bcrypt, e a chave de ativação pendente daquele pedido de recuperação é zerada de quebra. Senha em texto puro gravada na mão no banco simplesmente não loga.

Não deixe a senha no histórico do shell

Do jeito acima a senha fica salva no arquivo de histórico do seu usuário. Gerar numa variável tira ela do histórico, mas o valor já expandido continua visível pra quem der um ps no segundo em que o comando roda:

NOVA=$(openssl rand -base64 18)
sudo -u www-data wp user update 7 --user_pass="$NOVA" --skip-email
echo "senha: $NOVA"

Em máquina compartilhada eu nem passo a senha na linha de comando: sudo -u www-data wp user update 7 --skip-email --prompt=user_pass faz o WP-CLI pedir o valor no terminal, e aí ele não entra no histórico nem na lista de processos.

Logou de volta? Entre em Usuários, apague os administradores que ninguém reconhece e confirme o e-mail cadastrado no seu. Conta de admin esquecida com senha fraca é a porta de entrada mais comum que eu encontro em faxina de site invadido.

Post Recentes

Base legal da LGPD no checkout: o que é contrato e o que exige consentimento

Pare de pedir checkbox para tudo no checkout: mapeie campo a campo qual base legal do artigo 7º sustenta cada…

2 horas atrás

Chamar API de IA com cURL no PHP 8.3: o script mínimo que já funciona

Saia do navegador e chame a API direto do seu código: um ia.php com curl_init, os headers certos e json_encode,…

1 dia atrás

WordPress não aparece no Google: noindex esquecido e robots.txt virtual

Site novo há semanas e nenhuma página indexada? Confira a caixinha de visibilidade em Leitura, o noindex no HTML e…

2 dias atrás

array_map perde as chaves do array no PHP: como manter o índice

O retorno do array_map voltou com índice 0, 1, 2 e o código que dependia da chave quebrou. Entenda quando…

3 dias atrás

Backup do Magento 2 com mysqldump: dump leve sem as tabelas de log

Dump de 12 GB que demora horas porque arrasta report_event e cron_schedule. Faça o backup em duas passadas, guarde só…

3 dias atrás

Preference do di.xml não aplica no Magento 2: o que checar antes

Escreveu a preference e o Magento 2 continua usando a classe original? Confira a área do di.xml, o generated/code e…

4 dias atrás