J'aimerais avoir un motd dynamique, mais je ne sais pas comment le faire.
J'ai essayé ce que je trouvais, en ajoutant /etc/update-motd.d/00-header
, 10-sysinfo
, 90-footer
et un lien symbolique à /etc/motd
/var/run/motd.dynamic
, /run/motd.dynamic
, /run/motd
ou /var/run/motd
.
J'ai ces lignes dans /etc/pam.d/sshd
:
# 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
session optional pam_motd.so noupdate
Je suis également confondu avec systemd.
Y a-t-il un moyen de faire cela? Quelqu'un pourrait-il donner un exemple avec une fortune simple?
pam_motd.so noupdate
le problème là-bas?Réponses:
Je suis capable de tester un mot-dynamique simple avec un exemple de fortune sur mon hôte Debian Jessie 8.2 comme ci-dessous et j'ai trouvé que le problème était lié à un comportement de buggy.
Créé deux fichiers de test comme ci-dessous et les a rendus exécutables
Cependant à ce moment, il n'y a pas eu de changement de motd. Donc, je strace'd processus sshd. À partir de cette trace (parties intéressantes illustrées ci-dessous), vous pouvez voir que le fichier motd.new nouvellement créé est renommé en / var / run / motd. Cependant, il essaie plus tard de lire à partir de /run/motd.dynamic - qui n'a jamais été créé
Le problème semble être lié aux incohérences avec le module pam_motd. Voir le rapport de bogue https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743286;msg=2
Il suffit de changer l' emplacement du fichier motd de
/run/motd.dynamic
à/run/motd
en/etc/pam.d/sshd
- fait fonctionner pour moiVoici l'exemple MOTD vu lors de la connexion ssh ...
la source
.new
à la fin dans/etc/pam.d/sshd
:session optional pam_motd.so motd=/run/motd.new
et le liensudo ln ds /run/motd /etc/motd
. Et j'ai oubliéexport LANG="eo"
pour voir la fortune./run/etc/motd.dynamic.new
Cela a changé au fil des ans:
Il y a d'abord eu
/etc/motd
(statique).Ubuntu a ensuite créé son propre package
update-motd
basé sur un script appelé depuis cron.Enfin, PAM a copié l'idée d'Ubuntu de /etc/update-motd.d/, et donc Debian et d'autres ont également ce comportement.
Il y a une explication ici
https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/
Voici donc comment les choses se passent actuellement: PAM va simplement lire
/var/run/motd.dynamic
et/etc/motd
s'il existe/etc/motd
- Le fichier classique et statique. N'existe plus dans Ubuntu 16.04 LTS, même pas en tant que lien symbolique vers / var / run / motd. S'il est créé, son contenu sera également imprimé./var/run/motd
- Ceci a été utilisé par la première implémentation d'Ubuntu. Il n'est plus utilisé. Il est simplement ignoré par PAM./var/run/motd.dynamic
- C'est ce qui s'affiche actuellement lors de la connexion. Il est mis à jour par /etc/init.d/motd à chaque démarrage. Il est également mis à jour par PAM en exécutant les scripts dans /etc/update-motd.d/, s'ils existent./etc/motd.tail
- Le paquet Ubuntu utilisé pour remplir /etc/update-motd.d. L'un d'eux catcherait le contenu de ce fichier, il était donc facile d'ajouter du contenu statique. Ce script n'existe plus dans le package, donc le fichier n'a pas l'effet voulu.L'exemple du post
la source