Como o / etc / motd é atualizado?

56

Eu queria saber como / etc / motd é automaticamente atualizado (estou no Ubuntu 10.04, edição do servidor). Eu encontrei o manpage update-motd através de uma pesquisa na web, mas esse programa não está instalado na minha máquina. O arquivo / etc / motd é atualizado regularmente, no entanto. Eu só não sei como e com que frequência. Ao fazer um locate motd , os seguintes arquivos são listados:

/etc/motd
/etc/update-motd.d
/etc/update-motd.d/00-header
/etc/update-motd.d/10-help-text
/etc/update-motd.d/20-cpu-checker
/etc/update-motd.d/50-landscape-sysinfo
/etc/update-motd.d/90-updates-available
/etc/update-motd.d/91-release-upgrade
/etc/update-motd.d/98-reboot-required
/etc/update-motd.d/99-footer
/home/me/.cache/motd.legal-displayed
/lib/security/pam_motd.so
/usr/bin/motd+shell
/usr/lib/update-manager/release-upgrade-motd
/usr/lib/update-notifier/update-motd-cpu-checker
/usr/lib/update-notifier/update-motd-reboot-required
/usr/lib/update-notifier/update-motd-updates-available
/usr/share/base-files/motd.md5sums
/usr/share/man/man1/motd+shell.1.gz
/usr/share/man/man5/motd.5.gz
/usr/share/man/man5/motd.tail.5.gz
/usr/share/man/man5/update-motd.5.gz
/usr/share/man/man8/pam_motd.8.gz
/usr/share/ubuntu-serverguide/html/C/pam_motd.html
    
por daniel kullmann 19.02.2012 / 20:18

3 respostas

54

É atualizado por pam_motd no login. A página de manual update-motd descreve isso:

   Ubuntu introduced the update-motd framework, by which  the  motd(5)  is
   dynamically assembled from a collection of scripts at login.

   Executable  scripts in /etc/update-motd.d/* are executed by pam_motd(8)
   as the root user at each login, and this information is concatenated in
   /var/run/motd.  The order of script execution is determined by the run-
   parts(8) --lsbsysinit option (basically alphabetical order, with a  few
   caveats).

   On   Ubuntu   systems,  /etc/motd  is  typically  a  symbolic  link  to
   /var/run/motd.
    
por Marius Gedminas 19.02.2012 / 20:26
10

A resposta aceita acima está correta, porém incompleta. Espero que isso forneça um pouco mais de informação para o OP.

Basicamente, em uma nova instalação, o motd é gerado a partir de três lugares:

  1. Os scripts em /etc/update-motd.d /
  2. Os binários compilados controlados por /etc/pam.d/login
  3. O arquivo / etc / legal

O número 3 se refere ao bloco de texto no final do seu texto que inclui "O Ubuntu vem com ABSOLUTAMENTE SEM GARANTIA ...", que é o arquivo / etc / legal . No entanto, você não encontrará nada sob /etc/update-motd.d/ que o menciona, nem a palavra "legal" aparece em qualquer lugar no arquivo /etc/pam.d/login. Sua inclusão foi obscura e eu realmente não sei como isso acontece. Quer dizer, eu sei que há um {$ HOME} /. Cache / motd.legal-exibido, mas eu não sei de onde isso vem (ainda).

O arquivo pam.d / login é responsável pela notificação do email pendente, mas isso não é obscuro. Há um bom comentário descrevendo "Imprime o status da caixa de correio do usuário após o login bem-sucedido" ali mesmo no arquivo. Suponho que, tecnicamente, isso não é realmente uma parte do motd, mas aparece no login e, se você é novo, essa distinção pode não ser apreciada.

Em uma nova instalação do 14.04, não há arquivo / etc / motd. Se você criar um (ou criar um motd.static e um link simbólico para o motd) o conteúdo desse arquivo será anexado ao texto gerado pelos scripts update-motd.d, mas o conteúdo de / etc / legal irá parar de aparecer. Vai saber. O aviso de email ainda aparece, então isso não interrompe o script pam.d / login, então eu duvido que / etc / legal esteja sendo extraído de lá. Seu sourcing permanece um mistério para o leitor. Tenho notado que quando eu removo o link / etc / motd (ou arquivo) o aviso legal não retorna imediatamente. Demora alguns minutos. Eu não queria ver constantemente o aviso, então eu apaguei o texto desse arquivo.

Felicidades.

    
por David Kuhl 20.08.2014 / 18:49
10

Para expandir um pouco na resposta de David Kuhl :

Uma nova instalação do Ubuntu Server 14.04.1 LTS aparentemente não instala os pacotes common-landscape nem update-notifier-common. Assim, os seguintes scripts não estão instalados:

/etc/update-motd.d/50-landscape-sysinfo
/etc/update-motd.d/90-updates-available

Assim, para obter todas as informações de login do ssh disponíveis nos servidores migrados do 12.04 LTS, é necessário instalar os pacotes acima manualmente:

sudo apt-get install landscape-common update-notifier-common
    
por skitheo 07.01.2015 / 22:38

Tags