Linux : Afficher un message à tous les users avec Wall

I. Présentation

Dans un monde où il faut communiquer de plus en plus vite, on se doit de fournir aux utilisateurs les informations en quasi temps réel. Sous Linux, il existe une commande, héritée du monde Unix, permettant d’envoyer un message urgent, en mode console, à l’ensemble des utilisateurs connectés. La commande wall permet ainsi de communiquer avec l’ensemble des utilisateurs.

REMARQUE : cette commande a été quelque peu négligée, voire oubliée avec les outils que nos chers systèmes d’exploitation mettent à disposition. Mais, elle peut s’avérer très utile dans les cas de nécessité tels que les arrêts-redémarrages en urgence, les arrêts de service(s) pour sauvegarde, etc.

Voyons de quoi il en retourne.

II. Utilisation de wall

L’outil ne nécessite pas grand-chose. Il fait partie des utilitaires du système et il est donc d’ores et déjà installé dès l’initialisation de Linux.

ATTENTION: pour que le message émis soit bien reçu, il faut que l’autorisation ‘mesg’ soit positionnée à la valeur ‘yes’.

En effet, certains utilisateurs ne souhaitent pas être interrompu dans leur(s) tâche(s) par la réception de messages impromptus. Pour s’en prémunir, ils ajoutent la ligne suivante, dans leur fichier .profile :

...mesg -n

Cette variable a pour effet de bloquer l’émission des messages wall émises par un utilisateur ordinaire. Toutefois, un utilisateur possédant les privilèges requis peut exécuter malgré tout l’émission de messages avec wall et annuler l’effet de mesg –n. La variable mesg peut être interrogée directement via la commande mesg :

# mesg
is y

Le message est généralement fourni en argument sur la ligne de commande. Mais, il peut aussi être envoyé sur l’entrée standard de wall. Lorsque c’est le cas (cas d’un terminal), le message doit se terminer par une fin de fichier (notée EOF) que l’on peut reproduire à l’aide de la séquence [CTRL]+D.

La longueur du message ne peut excéder vingt lignes et une notification d’envoi de chaque message est inscrite dans le fichier /var/log/messages avec la "facilité" LOG_USER et un niveau de logs à LOG_INFO.

RAPPEL : afin d’envoyer un message à une seule personne, il suffit d’identifier son pseudo-terminal à l’aide de la commande suivante :

# who
user        pts/0       2018-03-06 07 :51 (srv0001.mydmn.org)

On peut alors envoyer le message à l’aide de la commande echo directement sur le pseudo-terminal identifié ci-dessus :

# echo "Mon Message URGENT !!!!" >> /dev/pts/0

Une seule option existe pour cette commande : -n. Elle permet d’empêcher l’affichage de la bannière standard, émise avant le message lui-même :

# wall -n "ATTENTION - Ceci est un test"
Remote broadcast message (Tue Mar  6 12:00:54 2018):

ATTENTION - Ceci est un test

Par défaut, la bannière d’émission d’un message est formalisée de la façon suivante et s’affiche lorsque l’on ne précise pas l’option -n :

Broadcast message from phil@srv001.mydmn.org (pts/0) (Tue Mar  6 12:00:47 2018):

III. Conclusion

La commande wall, bien qu’assez ancienne (en tout cas plus ancienne que GNU/Linux lui-même), permet d’émettre des informations sous forme de messages à l’ensemble des personnes connectés au système. Alors pensez-y à l’avenir, lorsque vous souhaitez prévenir vos utilisateurs d’un arrêt imminent du système.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Philippe PIERRE

A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.

    philippe-pierre has 38 posts and counting.See all posts by philippe-pierre

    Laisser un commentaire

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

     

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.