Erro ‘Você Não Está Autorizado’ no Painel Admin do Mastodon: Corrigir
🔍 WiseChecker

Erro ‘Você Não Está Autorizado’ no Painel Admin do Mastodon: Corrigir

Ao tentar abrir o painel admin do Mastodon e ver a mensagem de erro ‘Você não está autorizado’, você não consegue gerenciar usuários, ver denúncias ou alterar configurações do servidor. Esse erro geralmente significa que sua conta não possui a função de admin correta atribuída no banco de dados ou que a função foi corrompida. Este artigo explica a causa raiz da falha de autorização e fornece instruções passo a passo para restaurar seu acesso de admin usando a interface de linha de comando do Mastodon.

Principais Conclusões: Restaurar Acesso ao Painel Admin no Mastodon

  • Verificação de função no banco via Rails console: Use tootctl accounts modify para verificar e reatribuir a função de owner ou admin à sua conta de usuário.
  • Incompatibilidade da variável de ambiente LOCAL_DOMAIN: Certifique-se de que o domínio no registro do usuário corresponda exatamente ao domínio do servidor, incluindo subdomínios.
  • Limpeza do cache de sessão: Execute tootctl cache clear após alterar funções para forçar o servidor a recarregar as permissões imediatamente.

ADVERTISEMENT

Por que o Mastodon Retorna ‘Você Não Está Autorizado’ no Painel Admin

O Mastodon usa um sistema de permissões baseado em funções armazenado na tabela de usuários do banco de dados PostgreSQL. As duas funções que concedem acesso ao painel são admin e owner. A função owner tem controle total, enquanto a função admin pode gerenciar a maioria das configurações, mas não pode excluir a instância ou alterar certas configurações críticas.

O erro ocorre quando o campo role da sua conta está definido como user ou é NULL. Isso pode acontecer após uma migração de banco de dados com falha, uma importação manual de registros de usuário ou quando o nome de domínio do servidor no registro do usuário não corresponde à variável de ambiente LOCAL_DOMAIN. O Mastodon verifica tanto a função quanto a correspondência de domínio antes de conceder acesso ao painel admin.

Outra causa é uma sessão corrompida ou cache de permissão. Quando você altera a função de um usuário, o Mastodon não atualiza imediatamente as permissões para sessões ativas. O servidor continua servindo o estado de autorização em cache até que o cache expire ou seja limpo manualmente.

Passos para Corrigir o Erro ‘Você Não Está Autorizado’

Você precisa de acesso SSH ao seu servidor Mastodon e capacidade de executar comandos como o usuário Mastodon. Se você não tiver acesso SSH, entre em contato com seu provedor de hospedagem ou administrador do sistema.

  1. Acesse seu servidor Mastodon via SSH
    Abra um terminal e conecte-se ao servidor usando ssh seusuario@seuipdoseridor. Substitua seusuario e seuipdoseridor pelas suas credenciais reais.
  2. Mude para o usuário Mastodon
    Execute sudo -i -u mastodon para alternar para a conta de usuário que executa os serviços do Mastodon. O nome de usuário pode variar; nomes comuns são mastodon ou toot.
  3. Navegue até o diretório do Mastodon
    Execute cd /home/mastodon/live ou o caminho onde seu código Mastodon está instalado. Verifique o caminho consultando seu arquivo Docker compose ou arquivo de serviço systemd.
  4. Abra o Rails console
    Execute RAILS_ENV=production bin/rails console. Isso inicia um shell Ruby interativo conectado ao banco de dados do Mastodon. Aguarde o prompt aparecer.
  5. Encontre seu registro de usuário
    Digite user = User.find_by(email: 'seuemail@exemplo.com') e pressione Enter. Substitua seuemail@exemplo.com pelo endereço de e-mail que você usa para fazer login. O console exibirá o objeto do usuário se encontrado.
  6. Verifique a função atual
    Digite user.role e pressione Enter. Se a saída mostrar "user" ou nil, a função precisa ser alterada. Se mostrar "admin" ou "owner", o problema está em outro lugar.
  7. Altere a função para admin
    Digite user.update(role: :admin) e pressione Enter. O console retornará true se a atualização for bem-sucedida. Para tornar o usuário owner, use user.update(role: :owner).
  8. Verifique o domínio no registro do usuário
    Digite user.account.username + '@' + user.account.domain e pressione Enter. Compare com o domínio do seu servidor. Se o domínio estiver errado ou for nil, atualize digitando user.account.update(domain: 'seudominio.com') substituindo seudominio.com pelo seu domínio real.
  9. Saia do Rails console
    Digite exit e pressione Enter. Você está de volta ao shell.
  10. Limpe o cache de permissão
    Execute RAILS_ENV=production bin/tootctl cache clear. Este comando limpa o cache Redis e força o Mastodon a recarregar as permissões na próxima requisição.
  11. Reinicie o processo web
    Execute systemctl --user restart mastodon-web se você usa systemd. Para configurações Docker, execute docker restart mastodon_web_1. Isso garante que a nova função seja reconhecida pelo servidor web.
  12. Teste o painel admin
    Abra seu navegador, saia do Mastodon, faça login novamente e navegue para https://seudominio.com/admin. O painel deve carregar sem o erro.

ADVERTISEMENT

Se o Mastodon Ainda Mostrar o Erro de Autorização Após a Correção Principal

Cookie de Sessão Não Atualizado Após Mudança de Função

O Mastodon armazena dados de autorização em um cookie assinado. Se o cookie foi emitido antes da mudança de função, o servidor pode ainda ver a função antiga. Limpe os cookies do navegador para o domínio do Mastodon ou abra o painel em uma janela de navegação privada. Faça login novamente e teste o painel.

Variável de Ambiente LOCAL_DOMAIN Não Corresponde

Verifique a variável de ambiente LOCAL_DOMAIN no arquivo de configuração do Mastodon (.env.production). Execute grep LOCAL_DOMAIN /home/mastodon/live/.env.production. O valor deve ser exatamente o mesmo que o domínio no registro do usuário, incluindo qualquer subdomínio como social.seudominio.com. Se forem diferentes, edite o arquivo e reinicie todos os serviços do Mastodon.

Migração de Banco de Dados Falhou Durante Atualização

Após uma atualização de versão do Mastodon, algumas migrações de banco de dados podem não ser executadas corretamente. Execute RAILS_ENV=production bin/tootctl db:migrate para aplicar quaisquer migrações pendentes. Em seguida, execute RAILS_ENV=production bin/tootctl cache clear e reinicie o processo web.

Funções de Admin no Mastodon: Owner vs Admin

Item Owner Admin
Acesso ao painel admin Sim Sim
Excluir a instância Sim Não
Alterar domínio do servidor Sim Não
Gerenciar todas as contas de usuário Sim Sim
Ver e resolver denúncias Sim Sim
Modificar configurações globais do servidor Sim Sim

Após aplicar a correção, você agora pode acessar o painel admin e gerenciar sua instância Mastodon. Para evitar futuros erros de autorização, sempre use o comando tootctl accounts modify para alterações de função em vez de edições diretas no banco de dados. Execute tootctl accounts modify --role admin --email seuemail@exemplo.com do shell para alterar funções sem abrir o Rails console.

ADVERTISEMENT