cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2024-05-16

motd (“Message of the day”/« message du jour ») est une fonctionnalitĂ© native de Linux qui affiche le contenu du fichier /etc/motd aprĂšs une identification rĂ©ussie et avant d’exĂ©cuter l’interprĂ©teur de commandes.


ඏ

L’idĂ©e initiale

Ce message du jour Ă©tait traditionnellement utilisĂ© sur les anciens systĂšmes Unix tournant avec un modĂšle du type : 1 ordinateur avec plusieurs terminaux physiques pour transmettre un message Ă  tous les utilisateurs du systĂšme. Le message Ă©tant mis Ă  jour par l’administrateur du systĂšme lorsque cela Ă©tait nĂ©cessaire.

Ce n’est donc pas un mĂ©canisme destinĂ© Ă  gĂ©nĂ©rer des messages dynamiquement.

Il s’agit tout simplement d’afficher le contenu du fichier /etc/motd sans autre traitement.


ඏ

Les Ă©volutions depuis sa mise en place

Le processus autour de cette fonctionnalitĂ© Ă  Ă©voluer de maniĂšre chaotique entre les diffĂ©rents dĂ©rivĂ©s d’Unix. MĂȘme sur les dĂ©rivĂ©s de Debian (comme Linux-Mint et Raspi-OS) cette fonctionnalitĂ© Ă  fait l’objet d’évolution et de rĂ©gressions.

Les fichiers (ou dossiers) évoqués par différentes versions du manuel sont :

  • /etc/init.d/motd
  • /etc/motd
  • /etc/pam.d/login
  • /etc/update-motd.d/
  • /run/motd.dynamic

Cette liste n’est pas exhaustive, notamment pour la mise Ă  jour dynamique du message. Mais il semble que ce ne soit pas extrĂȘmement transposable, ni simple Ă  mettre en Ɠuvre.

Pour obtenir un affichage dynamique, il existe des solutions faciles Ă  Ă©crire en s’appuyant par exemple sur /etc/profile.


ඏ

Un cas d’usage statique mais utile

Ce n'est pas tant le fait le message soit statique qui me pausait problĂšme, mais le fait que le fichier soit unique.

Pour identifier mes machines (mettre en Ă©vidence : une production vs une machine de test, connaĂźtre les applications installĂ©es), je souhaitais avoir tout simplement plusieurs fichiers et je me suis inspirĂ© de la notation usuelle pour faire cela, c’est-Ă -dire crĂ©er un dossier ayant le mĂȘme nom que le fichier de configuration en ajoutant .d. (ex : /etc/apt/sources.list et /etc/apt/sources.list.d/).

J’ai donc crĂ©Ă© le dossier /etc/motd.d et j’ai fait un petit script pour afficher son contenu lors de la connexion d’un utilisateur. Oh, surprise mes fichiers se sont affichĂ©s deux fois. En effet, aprĂšs dĂ©sactivation de mon script, je me suis aperçu que le dossier /etc/motd.d Ă©tait dĂ©jĂ  pris en charge.


ඏ

Mise en Ă©vidence du fonctionnement de motd

Pour tester motd, je vous propose d’exĂ©cuter le code suivant depuis un terminal ou une console :

F='/etc/motd' ; echo "$F" | sudo tee --append "$F"
sudo mkdir /etc/motd.d
F='/etc/motd.d/a.motd' ; echo "$F" | sudo tee --append "$F"
F='/etc/motd.d/b.motd' ; echo "$F" | sudo tee --append "$F"

Pour voir ce qu'il se passe :

Cas depuis une machine avec une interface graphique :

  • Afficher le terminal 6 (Ctrl + Alt + F6) et connectez-vous depuis la console,
  • Pour revenir Ă  l’interface graphique utilisez Ctrl + Alt + F7.

Cas depuis une machine sans interface graphique ou depuis un accÚs SSH :

Il suffit de vous déconnecter et de vous connecter de nouveau.

  • Nettoyage

    Les 4 lignes ci-dessus ajoutent aux fichiers le nom complet du fichier a chaque fois que le groupe de ligne est exécuté.

    Pour nettoyer ce qui a Ă©tĂ© fait, dans l’hypothĂšse oĂč vous aviez quelque chose dans ces fichiers regarder le contenu de :

    cat '/etc/motd'
    cat '/etc/motd.d/a.motd'
    cat '/etc/motd.d/b.motd'
    

    Le fichier /etc/motd par défaut du systÚme se trouve ici : /usr/share/base-files/motd, une procédure de nettoyage raisonnable est :

    sudo cp '/usr/share/base-files/motd' '/etc/motd'
    sudo rm '/etc/motd.d/a.motd'
    sudo rm '/etc/motd.d/b.motd'
    

ඏ

Liens

Merci Ă  caseih⁩ đŸș pour ces remarques.

኿đŸș


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog