Le motd pour le dire

Publié
Commentaires Aucun

Et si votre serveur Linux vous disait des petits mots doux lorsque vous vous connectez en console

les_mots.jpg

Lorsque vous ouvrez une session en console sur une machine Linux, un message d’accueil s’affiche
Ce message appelé : motd (message of the day/message du jour) peut être personnalisé

Habituellement par défaut vous avez quelque chose comme ça :

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.10.58+ armv7l)

 * Documentation:  https://help.ubuntu.com/

45 packages can be updated.
28 updates are security updates.

Last login: Sat Jul 23 17:41:12 2016 from 192.168.10.1

En fait on peut mettre le message que l’on veut, et beaucoup d’administrateurs en profitent pour afficher un message qui permet d’identifier facilement le serveur sur lequel on se connecte

Vous trouverez sur internet des générateurs de code ascii, comme par exemple :
motd generator
http://patorjk.com/software/taag/#p=display&f=Graffiti&t=%20
http://www.network-science.de/ascii/

Il est même possible de convertir une image en texte
https://motd.tty-i.com//

Comment fait on ?

On va voir comment modifier le message d’accueil de façon statique, mais on va également voir comment générer un motd plus dynamique qui permet d’avoir des infos système sur la machine comme ça :

motd_complet.jpg

Pour Modifier le modt rien de plus facile

Sous Debian (raspbian) faites une copie du fichier original, puis éditez le fichier /etc/motd, ou créez le si il n’existe pas

cp /etc/motd /etc/motd.bck 
nano /etc/motd 

Et copier le texte que vous voulez voir apparaître à l’ouverture de session

ce qui dans notre cas donne :

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.10.58+ armv7l)

 * Documentation:  https://help.ubuntu.com/

45 packages can be updated.
28 updates are security updates.

  ______     ___            __         __       ______   ______
 /      |   /   \          |  |       |  |     /      | /  __  \
|  ,----'  /  ^  \         |  |       |  |    |  ,----'|  |  |  |
|  |      /  /_\  \  .--.  |  | .--.  |  |    |  |     |  |  |  |
|  `----./  _____  \ |  `--'  | |  `--'  |  __|  `----.|  `--'  |
 \______/__/     \__\ \______/   \______/  (__)\______| \______/

Last login: Sun Jul 24 12:53:50 2016 from 192.168.1.1

Sur les serveurs, la génération du motd se fait grâce à des scripts spécifiques (package landscape-common)

ls /etc/update-motd.d/
00-header  10-help-text  90-updates-available  91-release-upgrade  98-fsck-at-r$

Ajout d’un script à la fin du message du jour

On peut aussi créer ses propres scripts dans /etc/update-motd.d/.
Bien entendu, ces scripts n’ont de sens que s’ils sont destinés a afficher du texte sur le terminal.

Par exemple:

nano /etc/update-motd.d/15-disque_libre

    #!/bin/sh
    echo
    /bin/df -h
    echo

Ce script doit avoir des droits d’exécution.

sudo chmod +x /etc/update-motd.d/15-disque_libre

Vous pouvez activer désactiver des scripts du répertoire /etc/update-motd.d/

Pour désactiver un script
On enlève les droits d’exécution
Par exemple pour ne plus voir la ligne

Documentation: https://help.ubuntu.com/

sudo chmod -x /etc/update-motd.d/10-help-text

Pour activer un script

Pour activer un script il suffit de lui donner les droits d’exécution

sudo chmod +x /etc/update-motd.d/10-help-text

Sur raspberry ce package n’est pas installé par défaut, on se contentera donc de modifier le fichier /etc/motd

Voyons maintenant comment afficher un message avec des infos système dynamiques

installation du script

app.jpg

  • On télécharge le script
wget https://github.com/willemdh/FireMotD/archive/v5.14.160701.zip
  • décompresse l’archive et on lance la construction
unzip v5.14.160701.zip
cd FireMotD-5.14.160701/
sudo make install
sudo make bash_completion

le script est maintenant installé dans le répertoire dans /usr/local/bin/

  • On teste
/usr/local/bin/FireMotD -S

Attention sur le RPI c’est un peu long

  • On affiche en choisissant le thème
/usr/local/bin/FireMotD -t red

Si il manque des paquets installez les

root@rpi170:~/FireMotD-5.14.160701# /usr/local/bin/FireMotD -t red
 /usr/local/bin/FireMotD: line 193: mpstat: command not found
 /usr/local/bin/FireMotD: line 199: bc: command not found
apt-get install bc
 apt-get install sysstat 

motd_red.jpg

Pour connaître toutes les options

/usr/local/bin/FireMotD -h

Rafraîchissement automatique

  • Pour que le motd se rafraîchisse automatiquement, on va programmer une tache 1 fois par jour à 3h03
sudo crontab -e
3 3 * * * /usr/local/bin/FireMotD -S > /dev/null

  • On peut écrire le résultat dans /etc/motd

/usr/local/bin/FireMotD -t blue >/etc/motd

On Combine les 2 techniques

  • on crée un fichier qui contient la bannière ASCII
  • On crée un script qui sera lancé par le cron et qui copie la bannière et l’extraction FireMotD dans le fichier motd
nano /usr/bin/motd_dyn.sh
#! /bin/bash
/usr/local/bin/FireMotD -S
cat /etc/motd_ascii > /etc/motd
/usr/local/bin/FireMotD -t blue >>/etc/motd

On ajoute les droits d’exécution pour ce fichier

chmod +x /usr/bin/motd_dyn.sh
  • Et on modifie le cron
sudo crontab -e
3 3 * * * /usr/bin/motd_dyn.sh > /dev/null

voila maintenant notre motd au démarrage de la session

motd_complet.jpg

On peut faire également plus fin et générer la page à chaque ouverture de session, dans ce cas ça ralentit un peu l’ouverture, mais l’affichage du rapport est rafraîchi à chaque ouverture de session

Pour cela, et par utilisateur

  • Editez le profile de l’utilisateur ~/.profile file, ~/.bash_profile file, ou le fichier ~/.bashrc
nano .profile

Ajoutez l’appel à FireMotD à la fin du fichier (choisissez votre thème)

/usr/local/bin/FireMotD -t red

Vous pouvez aussi modifier le profile pour tous les utilisateurs

par exemple ./etc/bash.bashrc, /etc/profile

Auteur

Commentaires

Commentaires fermés pour cet article.

← Plus anciens Plus récents →