¿Cómo se actualiza / etc / motd?

58

Me preguntaba cómo / etc / motd se actualiza automáticamente (estoy en Ubuntu 10.04, edición del servidor). Encontré la página de manual de update-motd mediante una búsqueda web, pero ese programa no está instalado en mi máquina. Sin embargo, el archivo / etc / motd se actualiza regularmente. Simplemente no sé cómo y con qué frecuencia. Al hacer una locate motd, se enumeran los siguientes archivos:

/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
daniel kullmann
fuente
No es / etc / motd en Ubuntu 14.04 LTS. Los archivos ahora son /var/run/motd.dynamic y /run/motd.dynamic que están vinculados. motd se actualiza si no hace un inicio de sesión silencioso. En ese caso, verá los contenidos que se crean por último cuando un usuario inicia sesión en modo "no silenciado".
randominstanceOfLivingThing

Respuestas:

57

Se actualiza al pam_motdiniciar sesión. La página del manual update-motd describe esto:

   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.
Marius Gedminas
fuente
26
puedes forzar consudo run-parts /etc/update-motd.d/
Pete
@Pete, probé ese comando, y aunque imprimió la información relevante, en realidad no cambió el texto /etc/motd. ¿Se espera esto?
snapfractalpop
55
@snapfractalpop, lo siento, me equivoqué. Puede usar partes de ejecución para la depuración, escupirá cuál será el motivo resultante si está haciendo adiciones /etc/update-motd.d. Por lo que puedo decir, la única forma de actualizar el archivo es activando pam_motd. En mi sistema parece ser el inicio de sesión de servicios y sshd ( grep pam_motd /etc/pam.d/*)
Pete
77
@snapfractalpop Sí, eso se espera. Si desea actualizar, /etc/motdredirija la salida allí:run-parts /etc/update-motd.d/ | sudo tee /etc/motd
n.st
2
Para acelerar los inicios de sesión en mi máquina, cambié de libpam-motd a update-motd. Update-motd usa un cronjob en lugar de activar la actualización al iniciar sesión. sudo apt-get remove libpam-motd; sudo apt-get install update-motd
xer0x
11

La respuesta aceptada arriba es correcta, aunque incompleta. Espero que esto proporcione un poco más de información para el OP.

Básicamente, en una instalación nueva, el motd se genera desde tres lugares:

  1. Los scripts en /etc/update-motd.d/
  2. Los binarios compilados controlados por /etc/pam.d/login
  3. El archivo / etc / legal

El número 3 se refiere al bloque de texto al final de su mensaje que incluye "Ubuntu viene con ABSOLUTAMENTE SIN GARANTÍA ...", ese es el archivo / etc / legal . Sin embargo, no encontrará nada en /etc/update-motd.d/ que lo mencione, ni la palabra "legal" aparecerá en ninguna parte del archivo /etc/pam.d/login. Su inclusión se ha vuelto oscura y realmente no sé cómo llega allí. Quiero decir que sé que hay un {$ HOME} /. Cache / motd.legal-visualizado pero tampoco sé de dónde viene eso (todavía).

El archivo pam.d / login es responsable de la notificación del correo electrónico pendiente, sin embargo, eso no es oscuro. Hay un buen comentario que describe "Imprime el estado del buzón del usuario al iniciar sesión correctamente" allí mismo en el archivo. Supongo que técnicamente eso no es realmente una parte del motd, pero aparece al iniciar sesión y, si eres nuevo, es posible que no se aprecie esa distinción.

En una nueva instalación de 14.04 no hay un archivo / etc / motd. Si crea uno (o crea un motd.static y lo enlaza a motd), el contenido de ese archivo se agregará al texto generado por los scripts update-motd.d pero el contenido de / etc / legal dejará de aparecer. Imagínate. El aviso por correo electrónico sigue apareciendo, por lo que esto no interrumpe la secuencia de comandos pam.d / login, por lo que dudo que / etc / legal se extraiga de allí. Su abastecimiento sigue siendo un misterio para el lector. Me he dado cuenta de que cuando elimino el enlace / archivo / etc / motd, el descargo de responsabilidad legal no vuelve de inmediato. Toma unos minutos No quería ver constantemente el descargo de responsabilidad, así que eliminé el texto de ese archivo.

Salud.

David Kuhl
fuente
1
Oh, olvidé una parte. Si accede a su máquina a través de ssh, también hay una configuración en el archivo / etc / ssh / sshd_config de "PrintLastLog". Eso es lo que controla la línea "Último inicio de sesión: ...", que es lo último que se imprime después de un inicio de sesión exitoso. Establecerlo en "no" no hará que la línea desaparezca, solo oculte la dirección IP de la última conexión ssh exitosa. Una vez más, técnicamente no forma parte del motd, pero tampoco es el maldito descargo de responsabilidad legal y sigue apareciendo.
David Kuhl
10

Para ampliar un poco la respuesta de David Kuhl :

Aparentemente, una nueva instalación de Ubuntu Server 14.04.1 LTS no instala los paquetes de horizontal-común ni de actualización-notificador-común. Por lo tanto, los siguientes scripts no están instalados:

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

Por lo tanto, para obtener toda la información de inicio de sesión ssh disponible de los servidores migrados desde 12.04 LTS, uno debe instalar los paquetes anteriores manualmente:

sudo apt-get install landscape-common update-notifier-common
skitheo
fuente