63 votes

Comment le fichier /etc/motd est-il mis à jour ?

Je me demandais comment /etc/motd est automatiquement mis à jour (je suis sur Ubuntu 10.04, édition serveur). J'ai trouvé la page de manuel update-motd via une recherche sur le web, mais ce programme n'est pas installé sur ma machine. Le fichier /etc/motd est pourtant régulièrement mis à jour. Je ne sais simplement pas comment et à quelle fréquence. En faisant un locate motd les fichiers suivants sont listés :

/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

65voto

Michiel de Mare Points 15888

Il est mis à jour par pam_motd à la connexion. Le site update-motd La page du manuel de l'entreprise le décrit :

   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.

13voto

David Kuhl Points 131

La réponse acceptée ci-dessus est correcte, mais incomplète. J'espère que cela fournira un peu plus d'informations à l'OP.

En fait, lors d'une nouvelle installation, le motd est généré à partir de trois endroits :

  1. Les scripts de la section /etc/update-motd.d/
  2. Les binaires compilés contrôlés par /etc/pam.d/login
  3. El /etc/legal fichier

Le numéro 3 se réfère au bloc de texte à la fin de votre motd qui inclut "Ubuntu est livré avec ABSOLUMENT AUCUNE GARANTIE ...", c'est le numéro 3. /etc/legal fichier. Cependant, vous ne trouverez rien sous /etc/update-motd.d/ qui le mentionne, et le mot "légal" n'apparaît nulle part dans la /etc/pam.d/login fichier. Son inclusion a été rendue obscure et je ne sais vraiment pas comment il s'y retrouve. Je veux dire, je sais qu'il y a un {$HOME}/.cache/motd.legal-displayed mais je ne sais pas non plus (encore) d'où cela vient.

El /etc/pam.d/login est responsable de la notification des e-mails en attente, mais cela n'est pas obscur. Il y a un beau commentaire qui le décrit :

Affiche l'état de la boîte aux lettres de l'utilisateur après une connexion réussie.

...juste là dans le fichier. Je suppose que techniquement, ce n'est pas vraiment une partie du motd, mais il apparaît à la connexion et si vous êtes nouveau, cette fine distinction peut ne pas être appréciée.

Sur une nouvelle installation de 14.04, il y a n'est pas /etc/motd fichier. Si vous en créez un (ou créez un motd.static et faites un lien symbolique vers motd), le contenu de ce fichier sera ajouté au texte généré par la commande update-motd.d scripts mais le contenu de /etc/legal cesseront de se manifester. Allez savoir. L'avis par courriel apparaît toujours, ce qui n'interrompt pas le processus d'inscription. /etc/pam.d/login script donc je doute que /etc/legal est tiré de là. Sa provenance reste un mystère pour le lecteur. J'ai remarqué que lorsque je retire le /etc/motd Le lien (ou le fichier) de l'avertissement légal ne revient pas immédiatement. Cela prend quelques minutes. Comme je ne voulais pas voir constamment la clause de non-responsabilité, j'ai supprimé le texte de ce fichier.

A la vôtre.

10voto

nmuntz Points 815

Pour développer un peu plus sur David Kuhl réponse :

Une installation fraîche du serveur Ubuntu 14.04.1 LTS n'installe apparemment pas les paquets landscape-common ni update-notifier-common. Ainsi les scripts suivants ne sont pas installés :

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

Ainsi, pour obtenir toutes les informations de connexion ssh disponibles sur les serveurs migrés depuis 12.04 LTS, il faut installer manuellement les paquets ci-dessus :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X