Les systèmes Unix traditionnels s'affichent /etc/motd
après que l'utilisateur a été authentifié avec succès et avant que le shell de l'utilisateur soit appelé. Sur les systèmes modernes, cela se fait par le pam_motd
module PAM, qui peut être configuré dans /etc/pam.conf
ou /etc/pam.d/*
pour afficher un fichier différent.
Le serveur ssh lui-même peut être configuré pour imprimer /etc/motd
si l' PrintMotd
option n'est pas désactivée dans /etc/sshd_config
. Il peut également imprimer l'heure de la connexion précédente s'il PrintLastLog
n'est pas désactivé.
Un autre message traditionnel pourrait vous dire si cela You have new mail
ou You have mail
. Sur les systèmes avec PAM, cela se fait par le pam_mail
module. Certains shells peuvent imprimer un message sur le courrier disponible.
Une fois le shell de l'utilisateur lancé, les fichiers de démarrage de l'utilisateur peuvent imprimer des messages supplémentaires. Pour une connexion shell interactif, si la connexion de l'utilisateur est un shell de type Bourne, regardez dans /etc/profile
, ~/.profile
, plus ~/.bash_profile
et ~/.bash_login
pour bash. Pour une connexion interactive à zsh, consultez /etc/zprofile
, /etc/zlogin
, /etc/zshrc
, ~/.zprofile
, ~/.zlogin
et ~/.zshrc
. Pour une connexion interactive à csh, recherchez dans /etc/csh.login
et ~/.login
.
Si le shell de connexion de l'utilisateur est bash et qu'il s'agit d'une connexion non interactive, bash s'exécute ~/.bashrc
(ce qui est vraiment étrange, car il ~/.bashrc
n'est exécuté pour les shells interactifs que si le shell n'est pas un shell de connexion). Cela peut être une source de problèmes; Je recommande d'inclure l'extrait de code suivant en haut de ~/.bashrc
pour renflouer si le shell n'est pas interactif:
if [[ $- != *i* ]]; then return; fi
grep
dans/etc
pour un sous - ensemble du message.