web-dev-qa-db-fra.com

Les variables d'environnement dans motd ne fonctionnent pas

J'essaie d'envoyer des journaux de connexion des utilisateurs à mon e-mail avec le nom et l'emplacement de l'utilisateur. Après avoir créé le script, j'ai constaté que les variables d'environnement ne peuvent pas s'exécuter dans ce script, j'espère que quelqu'un là-bas pourra m'aider à le faire fonctionner même si c'est un problème de sécurité. Merci pour votre temps

/etc/update-motd.d/99-footer

ssmtp -oi [email protected] << EOF
To: [email protected]
Subject: Login

$Sudo_USER" from "$SSH_CLIENT

EOF

la sortie e-mail est

Subject: Login  
 from
3
Alexander

À titre expérimental, j'ai ajouté une commande env (équivalente à printenv) à la fin de /etc/update-motd.d/99-footer sur mon système Ubuntu 12.04.

Lorsque je me suis reconnecté, les lignes suivantes ont été ajoutées à la fin de mon /etc/motd:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/

Donc $PATH et $PWD sont les variables d'environnement niquement définies lorsque 99-footer est en cours d'exécution. C'est pourquoi $Sudo_USER et $SSH_CLIENT ne sont pas développés.

Vous devez envoyer cet e-mail ailleurs, et non depuis le processus de mise à jour /etc/motd.

2
Keith Thompson