É possível colocar comandos no / etc / motd?

13

Posso colocar comandos de shell no /etc/motdarquivo de banner de login? Eu tentei:

 $(uptime)

e

`uptime`

Isso é possível?

Justin
fonte

Respostas:

15

/etc/motd é apenas lido e não executado; portanto, tecnicamente falando, você não pode colocar comandos de shell nele.

No entanto, é possível executar um script de shell no momento do login que terá o mesmo resultado. Isso geralmente é conseguido adaptando o /etc/profilescript que é executado sempre que um usuário efetua login. Uma prática útil é colocar o comando que você deseja executar em um script nomeado /etc/motd.she chamar esse script /etc/profile, geralmente no final do mesmo.

Tonin
fonte
3
não é uma prática comum usar /etc/motd.sh #
1
@EricDANNIELOU Sim, pode-se usar o nome de script que ele / ela quiser. Acabei de remover o adjetivo comum que não era apropriado. Ainda assim, nomeá-lo dessa maneira facilita identificar e saber a que finalidade serve.
Tonin
1
Parece haver uma maneira de usar o cron para substituir regularmente a mensagem estática motd: md3v.com/create-a-linux-server-status-motd Acho que esse script de perfil parece ser uma maneira melhor, com menos partes móveis.
CMCDragonkai
4
Colocar saída como um MOTD no seu perfil provavelmente quebrará o sftp.
Stuart P. Bentley
4
Você pode colocar o motd.shscript dentro /etc/profile.d/com permissões 755. Dessa forma, você não precisaria chamá-lo /etc/profile.
Itay Grudev
8

Nos servidores Ubuntu, existe um programa chamado update-motdfrom package libpam-modules:

Os administradores de sistema UNIX / Linux geralmente comunicam informações importantes ao console e usuários remotos, mantendo o texto no arquivo / etc / motd, que é exibido pelo módulo pam_motd (8) nos logins de shell interativos.

Tradicionalmente, esse arquivo é um texto estático, normalmente instalado pela distribuição e atualizado apenas em atualizações de versão ou sobrescrito pelo administrador local com informações pertinentes.

O Ubuntu introduziu a estrutura update-motd, pela qual o motd (5) é montado dinamicamente a partir de uma coleção de scripts no login.

Esta coleção de scripts vive sob /etc/update-motd.d/. Para mais informações, consulte esta página wiki .

Outra alternativa para gerar /etc/motd, em vez de executar um script no logon, é ter um trabalho cron. Certamente não é o mesmo, mas já encontrei essa abordagem algumas vezes no passado.

Wtower
fonte
1
Post askubuntu relacionado . Força com sudo run-parts /etc/update-motd.d/.
Pablo #
1
Isso também minimiza o atraso de login na inicialização, pois você não precisa avaliar um script no login (supondo que ele fique mais complexo que uptime).
Ayman
1

Sim, é possível ... Sorta.

Procure criar um MOTD dinâmico . Esta é uma forma abreviada deste processo documentado .

ewwhite
fonte
Eu só preciso adicionar session optional pam_motd.sopara /etc/pam.d/logintornar o /etc/motdexecutável?
23412 Justin
4
Nós realmente preferimos que as respostas contenham conteúdo e não ponteiros para o conteúdo. Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
user9517
O link dinâmico MOTD diz essencialmente que você pode adicionar comandos para imprimir uma mensagem /etc/profile, portanto isso é equivalente à resposta de Tonin.
Andre Holzner