"Message" dans la premièrE console/terminal ouvertE et attribué ou non à un user

Bonjour.

Auriez vous des pistes pour:
A l’ouverture de session et du premier terminal/console:

  • Avoir un message au lancement qui n’apparaitra qu’une et une seul fois, ceci en fonction d’un user ou non (message général)

  • En console, le message apparait après le succès du login à une session sur tty1 mais passant sur tty2 celui ci ne s’affiche pas.

  • En mode graphique, c’est à l’ouverture du terminal que ce message apparait et le terminal n’est pas lancé automatiquement à l’ouverture, n’apparait que dans le première instance de et n’importe quelle terminal (xterm, urxvt, konsole, …)

J’ai déjà dans mon fichier ~/.zshrc quelques lignes du style (cela aurait pu être ~/.bashrc si vous n’avez pas zsh d’installé):

lightblue='\e[1;34m'
# System Information:
clear
echo -e ""
echo -e "  ${lightpurple}Today :\t\t" `date`
#echo -e "  ${lightblue}System :       `lsb_release -i | cut -f 2` - `lsb_release -c | cut -f 2` - `lsb_release -r | cut -f 2`"
#echo -e "  ${lightblue}Kernel :       `uname -o` `uname -r` - `uname -m`"
echo -e ""

Qui donne un résultat à chaque ouverture d’une console ou en graphique, d’un terminal.

Beaucoup d’os préconfigurer utilise une méthode similaire pour la première ouverture du premier terminal puis ne s’affichera « plus jamais », d’autres à chaque premier terminal de chaque session. Et je sais qu’en tant qu’administrateur on peut envoyer ce message à un user bien précis.

Mais j’ai pas trop de doc à ce niveau…

Merci d’avance
bon fin de premier septembre 2022 !
a+

salut
une méthode, pas très belle , est de créer un fichier .lock dont tu testes l’existence à chaque ouverture et tu le détruis à la fermeture de la session

Il me semble qu’Ubuntu fait quelque chose d’approchant, en affichant systématiquement un message à l’ouverture d’une session shell interactive, sauf si un fichier (je ne me souviens pas du nom) est trouvé dans le $HOME

en ouverture de session, tu peux utiliser tout simplement les fichiers /etc/motd, /etc/issue et /etc/issue.net pour un message général, et pour l’après login neofetch; c’est ce que j’utilise :

Pre-authentication banner message from server:
| ***********************************************************************
| *                                                                     *
| * Welcome to                                                          *
| *                                                                     *
| *  _____               _               _ _   _       _____            *
| * |  ___|             | |             (_) | | |     |  _  |           *
| * | |__ _ __   ___  __| |_      ____ _ _| |_| |__   | | | |_ __ __ _  *
| * |  __| '_ \ / _ \/ _` \ \ /\ / / _` | | __| '_ \  | | | | '__/ _` | *
| * | |__| | | |  __/ (_| |\ V  V / (_| | | |_| | | | \ \_/ / | | (_| | *
| * \____/_| |_|\___|\__,_| \_/\_/ \__,_|_|\__|_| |_|  \___/|_|  \__, | *
| *                                                               __/ | *
| *                                                              |___/  *
| *                                                                     *
| * This system is for the use of authorized users only.                *
| *                                                                     *
| * All connections are monitored and recorded.                         *
| *                                                                     *
| * Anyone using this system expressly consents to such monitoring      *
| * and is advised that if such monitoring reveals possible             *
| * evidence of criminal activity, system personnel may provide the     *
| * evidence from such monitoring to law enforcement officials.         *
| *                                                                     *
| *  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  *
| *  !!! Disconnect IMMEDIATELY if you are not an authorized user. !!!  *
| *  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  *
| *                                                                     *
| ***********************************************************************
End of banner message from server

max=16
       _,met$$$$$gg.          Hostname......: dsrvscdd01.net.enedwaith.org
    ,g$$$$$$$$$$$$$$$P.       --------------------------------------------
  ,g$$P"     """Y$$.".        OS............: Debian GNU/Linux 11 (bullseye) x86_64
 ,$$P'              `$$$.     Host..........: VirtualBox 1.2
',$$P       ,ggs.     `$$b:   Kernel........: Linux 5.10.0-17-amd64
`d$$'     ,$P"'   .    $$$    Uptime........: 1 hour, 59 mins
 $$P      d$'     ,    $$P    Packages......: 958 (dpkg)
 $$:      $$.   -    ,d$$'    Shell.........: bash 5.1.4
 $$;      Y$b._   _,d$P'      Resolution....: 1592x900
 Y$$.    `.`"Y$$$$P"'         Terminal......: run-parts
 `$$b      "-.__              -------------------------
  `Y$$                        CPU...........: AMD Ryzen 5 3600X (2) @ 3.792GHz
   `Y$$.                      GPU...........: VirtualBox Graphics Adapter
     `$$b.                    GPU Driver....: vboxvideo
       `Y$$b.                 -------------------------
          `"Y$b._             Memory........: [-==============] 206MiB / 1982MiB (10%)
              `"""            CPU Usage.....: [-==============] 7%
                              Disk.......... (/).............: [---============] 4.9G / 22G (25%)
                              Disk.......... (/boot).........: [--=============] 50M / 285M (19%)
                              Disk.......... (/home).........: [===============] 888K / 8.6G (1%)
                              Disk.......... (/tmp)..........: [===============] 36K / 4.1G (1%)
                              Disk.......... (/var)..........: [===============] 442M / 22G (3%)
                              Disk.......... (/var/log)......: [===============] 366M / 8.6G (5%)
                              Disk.......... (/var/log/audit): [===============] 62M / 8.6G (1%)
                              Disk.......... (/var/tmp)......: [===============] 32K / 4.1G (1%)
                              ------------------------------------------------------------
                              Local IP......: *****
                              Public IP.....: *****
                              ----------------------------

Pour ce qui est spécifique à un utilisateur, dans le cadre d’un accès via SSH, tu peux ajouter:

Match User username1
    Banner /etc/banner_user1

Match User username2
    Banner /etc/banner_user2

Tu peux aussi utiliser "$HOME/.ssh/rc"

Une bannière pour un user ne s’affichera qu’une fois la session ouverte.
Il faut être vigilant avec motd car il peut leak des infos particulières qui peuvent être sensible.

Aussi:
if [ -f /etc/motd.d/${USER} ]; then
cat /etc/motd.d/${USER};
fi

L’important, c’est qu’il n’y ait pas d’information susceptible d’etre utilisé contre le système dans le message général pré-login.
faire aussi attention s’il y a du code dasn celui du user, que le fichier corespondant ne puisse pas permettre de sortir de son $HOME