Me gustaría tener una motd dinámica, pero no puedo entender cómo hacerlo.
He intentado lo que he encontrado, añadiendo /etc/update-motd.d/00-header
, 10-sysinfo
, 90-footer
, y enlaces simbólicos a /etc/motd
/var/run/motd.dynamic
, /run/motd.dynamic
, /run/motd
o /var/run/motd
.
Tengo estas líneas en /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
También estoy confundido con systemd.
¿Hay alguna forma de hacer esto? ¿Podría alguien dar un ejemplo con una simple fortuna?
pam_motd.so noupdate
sería el problema allí?Respuestas:
Puedo probar el ejemplo simple dynamic-motd con fortune en mi host Debian Jessie 8.2 como se muestra a continuación y descubrí que el problema está relacionado con un comportamiento defectuoso.
Creó dos archivos de prueba como a continuación y los hizo ejecutables
Sin embargo, en este momento, no hubo cambio en motd. Así que inicié el proceso sshd. A partir de ese rastro (las partes interesantes se muestran a continuación), puede ver que el archivo motd.new recién creado se renombra a / var / run / motd. Sin embargo, más tarde intenta leer desde /run/motd.dynamic, que nunca se creó
El problema parece estar relacionado con inconsistencias con el módulo pam_motd. Ver informe de error https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743286;msg=2
Simplemente cambiando la ubicación del archivo motd desde
/run/motd.dynamic
que/run/motd
en/etc/pam.d/sshd
- hace que funcione para míAquí está la MOTD de muestra vista durante el inicio de sesión ssh ...
fuente
.new
al final en/etc/pam.d/sshd
:session optional pam_motd.so motd=/run/motd.new
y enlacesudo ln ds /run/motd /etc/motd
. Y se me olvidóexport LANG="eo"
para ver la fortuna./run/etc/motd.dynamic.new
Esto ha cambiado con los años:
Primero hubo
/etc/motd
(estático).Luego, Ubuntu creó su propio paquete
update-motd
basado en un script llamado desde cron.Finalmente, PAM copió la idea de Ubuntu de /etc/update-motd.d/, y por lo tanto Debian y otros también tienen ese comportamiento.
Hay una explicación aquí
https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/
Así es como están las cosas actualmente: PAM solo leerá
/var/run/motd.dynamic
y/etc/motd
si existe (pegar desde la publicación)/etc/motd
- El archivo clásico y estático. Ya no existe en Ubuntu 16.04 LTS, ni siquiera como un enlace simbólico a / var / run / motd. Si se crea, también se imprimirá su contenido./var/run/motd
- Esto fue utilizado por la primera implementación de Ubuntu. Ya no se usa. Simplemente es ignorado por PAM./var/run/motd.dynamic
- Esto es lo que se muestra al iniciar sesión actualmente. Se actualiza con /etc/init.d/motd en cada arranque. PAM también lo actualiza ejecutando los scripts en /etc/update-motd.d/, si existen./etc/motd.tail
- El paquete Ubuntu utilizado para rellenar /etc/update-motd.d. Uno de ellos capturaría el contenido de este archivo, por lo que fue fácil agregar contenido estático. Ese script ya no existe en el paquete, por lo que el archivo no tiene el efecto deseado.El ejemplo de la publicación.
fuente