![Mensagem motd dinâmica de fonte remota?](https://rvso.com/image/1606686/Mensagem%20motd%20din%C3%A2mica%20de%20fonte%20remota%3F.png)
motdpermite exibir mensagens de login de boas-vindas para usuários Linux.
É possível configurar o motd de forma a buscar alguma URL remota?
Cenário de exemplo:
informe os usuários sobre o fim da vida útil do Python 2, mas pare de fazê-lo quando o prazo expirar.
suprima esta mensagem se nenhum Python2 estiver instalado
Exemplos de cenários mais complexos:
- passe um argumento, avalie-o dinamicamente e informe ao usuário que este sistema operacional não é mais suportado.
Responder1
Para mensagens de todo o sistema, o motd pode ser gerado no momento da inicialização – que é como o Ubuntu e o Debian fazem atualmente. Eles possuem um update-motd
sistema que monta o arquivo de texto a partir de um cabeçalho padrão, dicas, anúncios, mensagens de atualização do sistema e assim por diante.
Na maioria dos casos, o motd é mostrado por um módulo PAM chamado pam_motd
. (O sistema Debian/Ubuntu na verdade funciona chamando o módulo duas vezes – primeiro para o /etc/motd estático, depois para o /run/motd gerado automaticamente.)
Portanto, se você precisar de um texto mais dinâmico (por exemplo, baseado no nome de usuário logado), poderá criar sua própria versão deste módulo e fazê-lo fazer o que quiser.
No entanto,nãofaça com que ele recupere arquivos diretamente da web, pois isso apenas tornará os logins mais lentos e irritará seus usuários sempre. Em vez disso, configure um cronjob que baixe o arquivo e simplesmente chame o módulo pam_motd existente com o nome do arquivo como parâmetro:
session optional pam_motd.so motd=/tmp/downloaded_message.txt
Responder2
/etc/motd
é apenas um arquivo de texto estático.
O que você está falando parece mais algo que poderia ser implementado com um script de login.
Distribuições mais recentes do Linux tendem a ter um /etc/profile.d
diretório, no qual você pode simplesmente inserir trechos de script para serem executados quando o usuário fizer login. Para cobrir todos os shells comuns, você deve produzir duas variantes de tais trechos de script: uma compatível com POSIX /bin/sh
com um .sh
sufixo e outro usando csh
sintaxe com .csh
sufixo.
Para distribuições mais antigas, você pode adicionar a funcionalidade desejada a /etc/profile
e /etc/csh.login
(para todos sh
os shells compatíveis com POSIX e for csh
/ tcsh
shells, respectivamente).
Você certamente poderia criar um script que entre em contato com uma URL remota específica e adicione algumas informações relevantes do sistema, como, por exemplo, cabeçalhos HTTP personalizados, que a extremidade remota poderia analisar e responder com um texto de mensagem personalizado.
No entanto, se a resposta retornada da URL remota não for apenas texto simples, mas contiver conteúdo potencialmente executável, esse mecanismo se tornará sensível à segurança: se o servidor que contém a URL remota (ou a rede, ou o próprio script de login) não for seguro, pode se tornar uma forma de um intruso obter acesso ao seu sistema. Você teria que ser muito mais cuidadoso em sua implementação para evitar isso.
Você também deve pensar no que acontecerá se o URL remoto estiver inacessível ou se o link de rede estiver inativo: você desejará que o sistema de mensagens expire e continue o login na maioria das situações de erro.