¿Cómo configurar un Mensaje dinámico del día (motd) en Debian Jessie 8.2 para ssh?

16

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/motdo /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?

batisteo
fuente
No pam_motd.so noupdatesería el problema allí?
Jakuje

Respuestas:

11

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.

mkdir /etc/update-motd.d
cd /etc/update-motd.d

Creó dos archivos de prueba como a continuación y los hizo ejecutables

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

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ó

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

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.dynamicque /run/motden /etc/pam.d/sshd- hace que funcione para mí

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

Aquí está la MOTD de muestra vista durante el inicio de sesión 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
VenkatC
fuente
¡Gracias, ayudó! Tuve que agregar .newal final en /etc/pam.d/sshd: session optional pam_motd.so motd=/run/motd.newy enlace sudo ln ds /run/motd /etc/motd. Y se me olvidó export LANG="eo"para ver la fortuna.
batisteo
Esta solución también funciona para Debian 7.
azmeuk
Esta solución básica también funciona para Debian estiramiento 9, con un pequeño pellizco - El archivo a leer es ahora/run/etc/motd.dynamic.new
cam8001
12

Esto ha cambiado con los años:

Primero hubo /etc/motd(estático).

Luego, Ubuntu creó su propio paquete update-motdbasado 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.dynamicy /etc/motdsi 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.

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/*
nachoparker
fuente