/etc/motd et ssh

Bonjour à tous

Je suis confronté à un petit souci. Rien de grave, mais cela m’exaspère.
J’ai un script qui me refait /etc/motd toutes les 10mn, juste pour le fun.
Mon fichier est bien configuré.
mais quand le me connecte (intra réseau) en ssh, mon fichier m’apparait deux fois sur la console!

Qui est le fichier de configuration qui fait que l’on voit motd? Mis à part /etc/ssh/sshd_config qui lui parle uniquement de /etc/issue ?

Je n’ai pas dans mon répertoire utilisateur de .bash_login qui pourrait le demander, à la rigueur (si j’ai bien compris certaines pages en anglais)

Avez vous une idée à me proposer?
Rémi.

Extrait de /etc/pam.d/sshd

[code]

Print the message of the day upon successful login.

This includes a dynamically generated part from /run/motd.dynamic

and a static (admin-editable) part from /etc/motd.

session optional pam_motd.so motd=/run/motd.dynamic noupdate
session optional pam_motd.so # [1] [/code]
Deux fichiers semblent entrer en jeu, /run/motd.dynamic et /etc/motd.

Hello,

Pour ma part j’ai fais un MOTD à cet endroit :

Son contenu :

[code]#!/bin/bash

Script pour MOTD

Version 1.0

Updated: 20/11/2012

Emplacement du script /etc/profile.d/

CPUTIME=$(ps -eo pcpu | awk ‘NR>1’ | awk ‘{tot=tot+$1} END {print tot}’)
CPUCORES=$(cat /proc/cpuinfo | grep -c processor)
UP=$(echo uptime | awk ‘{ print $3 " " $4 }’)
PRIVATEIP=$(hostname -i | awk ‘{ print $2 }’)
VERT="\033[1;32m"
NORMAL="\033[0;39m"
ROUGE="\033[1;31m"
ROSE="\033[1;35m"
BLEU="\033[1;34m"
BLANC="\033[0;02m"
BLANCLAIR="\033[1;08m"
JAUNE="\033[1;33m"
CYAN="\033[1;36m"

echo -e "
$ROSE##################################################################$NORMAL
$VERT Informations: $NORMAL

  • Hostname = $JAUNE hostname -s $NORMAL - @ IP = $JAUNE echo $PRIVATEIP$NORMAL
  • Date = date
    $ROSE------------------------------------------------------------------$NORMAL
    $VERT Système: $NORMAL
  • Version OS = lsb_release -ds
  • Load Averages = cat /proc/loadavg
  • Uptime = echo $UP
  • Kernel = uname -or
  • Usage CPU = echo $CPUTIME / $CPUCORES | bc%
    $ROSE------------------------------------------------------------------$NORMAL
    $VERT Mémoire: $NORMAL
  • Utilisation mémoire = free -m | head -n 2 | tail -n 1 | awk {'print $3'} Mb sur free -m | head -n 2 | tail -n 1 | awk {'print $2'} Mb soit free -m | head -n 2 | tail -n 1 | awk {'print $4'} Mb de libre.
    $ROSE------------------------------------------------------------------$NORMAL
    $VERT Disques: $NORMAL
  • Utilisation Swap = free -m | tail -n 1 | awk {'print $3'} Mb
  • Utilisation de / = df / | awk '{ a = $5 } END { print a }'
  • Utilisation de /tmp = df /tmp | awk '{ a = $5 } END { print a }'
  • Utilisation de /home = df /home | awk '{ a = $5 } END { print a }'
    $ROSE##################################################################$NORMAL
    "

End of script[/code]

L’avantage c’est qu’il n’y a rien à faire. C’est vite monté et efficace.

merci à tous les deux.

@etxeberrizahar: je vais allez voir ça dès que je reviens de l’entrainement.

@P’tit Nico :wink: cela va m’éviter une tache cron :slightly_smiling: Le mien n’est pas aussi perfectionné, j’ai trouvé une version sur le net pour un raspberry-pi. Je m’en suis inspiré. Mais si tu le permet, je vais prendre quelques idées…

A+

Pour utiliser mon MOTD il faut faire un virement sur mon compte en suisse.
Je vous laisse le soin d’effectuer votre virement au plus tôt, sinon votre ordinateur pourrait immédiatement prendre feu.

Cordialement,

[quote=“P’tit Nico :wink:”]Pour utiliser mon MOTD il faut faire un virement sur mon compte en suisse.
Je vous laisse le soin d’effectuer votre virement au plus tôt, sinon votre ordinateur pourrait immédiatement prendre feu.

Cordialement,[/quote]

Je peux déduire des impôts?

Cependant, ta version de l’adresse ip n’est pas tout à fait exacte:
Chez moi, la valeur retournée est 127.0.1.1 or, j’ai une carte wifi, sur laquelle je suis en train de faire passer les données. C’est wlan0.
Je te propose ceci comme valeur:

`/sbin/ifconfig | /bin/grep "Bcast:" | /usr/bin/cut -d ":" -f 2 | /usr/bin/cut -d " " -f 1`

Chez moi, ceci me renvoi bien ma vrai ip active.

cordialement. (j’attend mon chèque en retour :slightly_smiling: )

Je suis allé voir dans /etc/pam.d
il y a deux fichiers qui font référence à motd: login et sshd
J’ai remarqué aussi dans /var/run/ un fichier créé par /etc/init.d/boot.misc: motd.dynamic
J’ai donc commencé par invalidée l’entrée dans /etc/pam.d/login:

# session    optional   pam_motd.so  motd=/run/motd.dynamic
# session    optional   pam_motd.so

ensuite, j’ai supprimé motd.dynamic, et fait un test:

unimatrice0 16:15:59 remi /home/remi
$ ssh remi@192.168.10.158
remi@192.168.10.158's password: 

 ~~~~~ Bienvenue sur master.suinot.org ~~~~~

 ------------------------------------------------------------
 WARNING: You must have specific authorization to access this
 machine. Unauthorized users will be logged, monitored, and
 could be pursued.
 ------------------------------------------------------------
 dimanche, 12 mai 2013, 16:15
 Linux 3.2.0-4-686-pae i686 GNU/Linux
 Memory.............: 768MB (Free) / 1000MB (Total)
 Running Processes..: 103
 Usage CPU .........: 0% 
	
 IP Addresses.......: 192.168.10.158 
 Temperature........: 34000

You have new mail.
Last login: Sun May 12 16:11:42 2013 from unimatrice0.local

 ~~~~~ Bienvenue sur master.suinot.org ~~~~~

 ------------------------------------------------------------
 WARNING: You must have specific authorization to access this
 machine. Unauthorized users will be logged, monitored, and
 could be pursued.
 ------------------------------------------------------------
 dimanche, 12 mai 2013, 16:15
 Linux 3.2.0-4-686-pae i686 GNU/Linux
 Memory.............: 768MB (Free) / 1000MB (Total)
 Running Processes..: 103
 Usage CPU .........: 0% 
	
 IP Addresses.......: 192.168.10.158 
 Temperature........: 34000

remi@master:~$ 

Si je suis bien la logique: il m’envoit le motd, regarde si j’ai du courrier et me renvoi motd!
est-ce que cela ne pourrais pas venir d’un /etc/profile ou d’un /etc/bash ?
Dans mon .bashrc, je n’ai rien trouvé.
De plus, en plaçant mon script dans /etc/profile.d le système mi dit que je n’ai pas l’autorisation!
Je n’arrive pas à tracer le chemin, sur ce coup là.

J’ai trouvé!
En fait, ce n’est pas pam qui autre qui met la zone!
C’est ssh!!!
Si on ne lui dit pas EXPLICITEMENT qu’il ne faut pas afficher le mot du jour, alors il l’affiche!!!
De fait, il suffit d’ajouter

PrintMotd no 

Et ça marche!

quand à la ligne

-bash: /run/motd: Permission non accordée

quand je mets le script dans /etc/profile.d j’ai trouvé ausi!

chmod 666 /run/motd

Et à chaque connexion, le script pourra le changer dans /run/motd

Voila. Une journée de perdu pour pas grand chose.
Merci à vous deux pour vos avis.

Rémi.

Merci pour votre retour.
Juste une précision sur ma squeeze de base j’avais déjà par défaut le Print Motd à No

root@ovh-serveur:~# cat /etc/ssh/sshd_config | grep PrintMotd PrintMotd no

Et je suis certain de ne pas y avoir touché. :unamused:

Quant au script lui même dans profile.d j’ai effectivement toujours cru qu’il fallait qu’il soit exécutable et pis en fait… c’est pas la peine…

root@ovh-serveur:~# ll /etc/profile.d/ total 8,0K -rw-r--r-- 1 root root 454 16.11.10 09:08 bash_completion.sh -rw-r--r-- 1 root root 1,8K 23.02.13 17:10 dyn_motd.sh

[quote=“P’tit Nico :wink:”]Merci pour votre retour.
Quant au script lui même dans profile.d j’ai effectivement toujours cru qu’il fallait qu’il soit exécutable et pis en fait… c’est pas la peine…

root@ovh-serveur:~# ll /etc/profile.d/ total 8,0K -rw-r--r-- 1 root root 454 16.11.10 09:08 bash_completion.sh -rw-r--r-- 1 root root 1,8K 23.02.13 17:10 dyn_motd.sh[/quote]

oui, j’ai vu aussi qu’il n’était pas besoin de le mettre executable. Mais mon script écrit dans /var/run/motd, et pour l’écriture, il faut que celui ci soit en -rw-rw-rw-