O que é mensagem para o dia e como configurar sem dor de cabeça
mensagem para o dia é o nome que muitos administradores dão ao recurso MOTD (Message of the Day) do Linux. Quando um usuário faz login via SSH ou em um terminal local, o sistema exibe uma mensagem antes do prompt de comando. Parece simples, mas a implementação varia drasticamente entre distribuições e isso causa confusão constante.
Entendendo o mecanismo por trás da mensagem para o dia
O arquivo clássico fica em /etc/motd e é lido pelo PAM durante a autenticação. Em sistemas mais modernos, o processo é mais complexo. No Ubuntu e Debian, o serviço pam_motd chama os scripts dentro de /etc/update-motd.d/ na ordem numérica, concatenando as saídas. No CentOS/RHEL, o systemd-motd ou o módulo PAM tradicional cuidam disso. A diferença prática é que, em alguns casos, editar apenas /etc/motd não produz o efeito esperado se um gerador dinâmico estiver ativo. Me deparei com um problema específico em um servidor Ubuntu 22.04 onde a mensagem personalizada simplesmente não aparecia para usuários conectados via SSH. O arquivo /etc/motd estava correto, o serviço estava rodando. O problema era que o login via SSH estávachamado do módulo loginmotd do PAM em vez de pam_motd, e esse módulo ignora /etc/motd quando /run/motd.dynamic existe e contém dados. A solução foi desabilitar o gerador dinâmico editando /etc/pam.d/sshd e comentando a linha com session optional pam_motd.so, depois reiniciar o serviço SSH. Esse tipo de detalhe raramente aparece em tutoriais genéricos.
Como criar e atualizar mensagem para o dia
A abordagem mais direta depende do que você precisa. Se quer algo estático, basta editar /etc/motd com o conteúdo desejado. Para conteúdo dinâmico, como informações de disco, carga do sistema ou alertas personalizados, scripts em /etc/update-motd.d/ são o caminho em sistemas Debian-based. Crie um arquivo com permissão executável. Coloque o script em bash dentro do diretório. A saída padrão (stdout) do script é o que aparece na tela do usuário. Um exemplo básico que funciona na maioria dos casos:
👉 Clique no botão abaixo para saber mais sobre o assunto!
#!/bin/bash
echo "Servidor de produção - manutenção sábado 03h"
echo "Último reboot: $(uptime -s)"
Dê permissão com chmod +x e teste com run-parts /etc/update-motd.d/. O tempo de execução de cada script conta. Se um script demorar muito, o usuário espera. Mantenha tudo abaixo de dois segundos por script para não frustrar ninguém. Em sistemas RHEL e derivados, a configuração segue lógica parecida mas com caminhos diferentes. O diretório é /etc/profile.d/ para variáveis de ambiente e scripts de login, ou você pode usar o módulo motd do systemd diretamente. O arquivo /etc/motd continua funcionando como fallback em muitos casos.
Ferramentas úteis para mensagem para o dia
Existem pacotes que facilitam a gestão. O my-motd do GitHub é um dos mais completos. Ele gera mensagens com dados de sistema, temperatura, uso de recursos e permite templates personalizados. A instalação via pip ou download direto funciona em praticamente qualquer distribuição. Outro projeto interessante é o update-motd-custom, mais simples, focado em gerar conteúdo dinâmico sem complicação. Se você quer apenas testar rapidamente sem instalar nada, o comando echo com redirecionamento para /etc/motd resolve. Para ambientes com muitos servidores, considere usar um gerenciador de configuração como Ansible. Um playbook simples de cinco linhas pode garantir que todos os hosts tenham a mesma mensagem para o dia configurada corretamente.
Limitações e armadilhas comuns
O maior problema com mensagem para o dia é que ele só aparece em login interativo. Usuários que usam ferramentas como rsync, scp, ou conexões automatizadas via chave SSH não veem nada. Se você precisa notificar sobre alguma mudança crítica, não conte com o MOTD como canal único. Configure também um agente de monitoramento ou um sistema de tickets. Outro ponto é a em sistemas com systemd. O arquivo /run/motd.dynamic é atualizado em tempo real pelo sistema, e qualquer mudança manual em /etc/motd pode ser sobrescrita no próximo login. Isso acontece especialmente em containers Docker, onde o ciclo de vida do arquivo dinâmico é diferente do esperado.
Se o seu ambiente tem muitos usuários e a mensagem precisa ser personalizada por grupo ou por host, a solução nativa não escala bem. Nesse caso, uma alternativa é usar banners no SSH configurados no sshd_config com a diretiva Banner, apontando para um script que consulta uma base de dados ou API. É mais trabalho inicial, mas oferece muito mais flexibilidade. A mensagem para o dia é útil para comunicação interna e lembretes operacionais, mas não substitui sistemas dedicados de notificação. Use como complemento, não como solução principal. Manter o conteúdo atualizado e os scripts leves faz toda a diferença na prática.