J'aimerais avoir un moth dynamique, mais je ne peux pas comprendre comment le faire.
J'ai essayé ce que j'ai trouvé, ajoutant /etc/update-motd.d/00-header
, 10-sysinfo
, 90-footer
et 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 offrir un exemple avec une fortune simple?
Je suis capable de tester de simples moteurs dynamiques avec l'exemple de Fortune sur mon hôte de Debian Jessie 8.2 comme ci-dessous et trouvé que le problème est lié à un comportement de buggy.
mkdir /etc/update-motd.d
cd /etc/update-motd.d
Créé deux fichiers de test comme ci-dessous et les ont fait exécuter
root@debian:/# cd /etc/update-motd.d/
root@debian:/etc/update-motd.d# ls -l
total 8
-rwxr-xr-x 1 root root 58 Dec 1 23:21 00-header
-rwxr-xr-x 1 root root 41 Dec 1 22:52 90-fortune
root@debian:/etc/update-motd.d# cat 00-header
#!/bin/bash
echo
echo 'Welcome !! This is a header'
echo
root@debian:/etc/update-motd.d# cat 90-fortune
#!/bin/bash
echo
/usr/games/fortune
echo
Cependant, à ce moment-là, il n'y avait pas de changement de MOTD. Donc, je strace'd sshd process.from Cette trace (pièces intéressantes présentées ci-dessous), vous pouvez voir que le fichier MOTD.New nouvellement créé est renommé TO/VAR/VAR/RUN/MOTD. Cependant, il tente plus tard de lire de /run/motd.dynamic - qui n'a jamais été créé
20318 rename("/var/run/motd.new", "/var/run/motd") = 0
20318 open("/run/motd.dynamic", O_RDONLY) = -1 ENOENT (No such file or directory)
20318 open("/etc/motd", O_RDONLY) = 8
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
dans /etc/pam.d/sshd
- le fait fonctionner pour moi
root@debian:/etc/pam.d# grep pam_motd sshd
#session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so motd=/run/motd
session optional pam_motd.so noupdate
Voici l'exemple de motd vu lors de la connexion SSH ...
Welcome !! This is a header
* Culus fears Perl - the language with optional errors
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Tue Dec 1 23:49:57 2015 from x.x.x.x
Cela a changé au fil des ans:
Il y avait d'abord /etc/motd
(statique).
Ensuite, Ubuntu est venu avec leur propre paquet update-motd
Basé sur un script appelé de 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/
C'est donc la façon dont les choses sont actuellement: PAM va simplement lire /var/run/motd.dynamic
et /etc/motd
Si cela existe (Coller de Poste)
/etc/motd
- Le fichier classique et statique. N'existe plus dans Ubuntu 16.04 LTS, pas même en tant que lien symbolique vers/var/run/motd. S'il est créé, mais son contenu sera également imprimé./var/run/motd
- Ceci a été utilisé par la première mise en œuvre de Ubuntu. Il n'est plus utilisé. C'est juste ignoré par PAM./var/run/motd.dynamic
- C'est ce qui est montré sur la connexion actuellement. 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 package Ubuntu utilisé pour remplir /etc/update-motd.d. L'un d'entre eux chat le contenu de ce fichier serait donc facile d'ajouter du contenu statique. Ce script n'existe plus dans l'emballage, le fichier n'a donc pas l'effet prévu.L'exemple du post
mkdir /etc/update-motd.d
rm -f /etc/motd # in Debian still exists
cat > /etc/update-motd.d/10logo <<EOF
#!/bin/sh
echo
cat /etc/issue
EOF
cat > /etc/update-motd.d/20updates <<'EOF'
#!/bin/sh
echo
echo "uptime is $( uptime )"
echo "date is $( date )"
EOF
chmod a+x /etc/update-motd.d/*