Personnaliser le MOTD sur Linux Debian

Le MOTD ou plus précisément le Message Of The Day. Qu’est-ce que c’est ? Ce sont les informations qui nous sont affichées lorsque l’on se connecte sur un Login Shell sous Linux. Pour ce qui est du Login Shell, c’est tout simplement quand vous devez entrer un couple login / password pour vous connecter. Comme pour SSH, ou les terminaux getty avec ctrl + alt + F1..F7.
Et les getty vous semblent inutiles… ? Si jamais votre interface graphique plante et que plus rien ne va, c’est votre planche de salut. Accessoirement ça permet de travailler sans interface graphique, et donc de préserver les ressources de votre machine.

Bref c’est bien pratique tout ça me direz vous mais je ne vois pas ce que cela peut m’apporter. L’intérêt est tout simple : avoir des informations dès votre connexion. Quelques exemples :

  • dernière fois que l’on s’est connecté et depuis quelle ip,
  • le nombre d’utilisateurs connectés,
  • uptime de la machine,
  • l’espace disque utilisé dans un répertoire particulier…

Ce ne sont que des exemples, bien évidemment. La seule chose qui nous limite ici c’est pour ainsi dire notre imagination. Je sais très bien que d’autres outils peuvent donner ces infos là et envoyer des alertes par mail et / ou par sms. Mais c’est toujours intéressant d’avoir quelques infos en plus lors de la connexion. Ne serait-ce que pour ceux qui sont tête en l’air ou toujours occupés. On se log, on voit brièvement quelques infos et c’est gratuit. C’est bibi qui régale. Tout ce qui va suivre s’applique à Debian, mais a de grandes chances de fonctionner sur Ubuntu également.

Le last login est déjà affiché dans le MOTD de base, pour le virer (afin de le remettre à votre sauce par la suite) c’est ici dans /etc/pam.d/login qu’il faudra opérer. Les deux lignes que je vais présenter servent respectivement à : pour la première, afficher le lastlogin. Pour la seconde, afficher le hostname, la version du noyau ainsi que sa date de compilation et son architecture.

session optional pam_lastlog.so

session optional pam_exec.so type=open_session stdout /bin/uname -snrvm

Je vous laisse mettre ces lignes en commentaire afin de les désactiver. Un simple # au début de ces lignes devrait avoir raison d’elles.

Un autre petit détail avant de pouvoir réaliser son propre MOTD est de penser à virer le /etc/motd qui se trouve de base dans votre système. Il peut aussi y avoir un /etc/motd.tail. A vous de vérifier et de faire une sauvegarde de ces deux fichiers dans votre répertoire personnel ou les supprimer. Bref une fois que vous avez décidé du sort de ces pauvres fichiers, il va falloir faire un lien vers le fichier qui contiendra les informations à afficher :

ln -s /var/run/motd

Alors oui je sais, le fichier /var/run/motd n’existe pas. Pas tout le temps en fait : il est généré dynamiquement au moment de votre connexion.

Maintenant il va nous falloir créer un répertoire un peu particulier dans /etc/, en effet, ce dossier est une fonctionnalité pour personnaliser le MOTD. Il est un peu caché dans la documentation de linux, et comme ce n’est pas aussi simple que de lire un livre, c’est compliqué à trouver. Il en est question dans : man pam_motd
Bref, on crée notre dossier en root avec un simple :

mkdir /etc/update-motd.d && chmod 644 /etc/update-motd.d

A partir de là nous allons pouvoir ajouter dans ce dossier des fichiers qui contiendront ce que l’on veut afficher dans notre Message Of The Day.
Les fichiers suivent une convention de nommage assez classique pour un système UNIX, ainsi le fichier qui commence par 00- sera exécuté / affiché en premier, alors que 99- le sera en dernier. J’ai pour ma part deux fichiers :

-rwxr-xr-x 1 root root 51 juin 6 15:37 00-header
-rwxr-xr-x 1 root root 61 juin 6 15:40 50-body
-rwxr-xr-x 1 root root 61 juin 6 15:54 99-footer

Il est nécessaire que les fichiers soient exécutables afin de les affichés lors du login. Bien évidemment il est possible d’en ajouter autant que l’on veut (je n’ai jamais essayé de numéroter au delà de 99).
Pour désactiver un script il suffira de retirer ses droits d’exécution ainsi :

chmod -x /etc/update-motd.d/99-other

A partir de là, il vous sera possible de récupérer le résultat de commandes ou de scripts et de les afficher lors de votre connexion via ces les fichiers que vous y placerez.
Par exemple un simple « last | head » dans un des fichiers permettra d’avoir les 10 derniers login d’affichés quand vous vous connecterez.

Lu 252 fois

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *