MOTD viene aggiornato molto raramente

7

Capisco che pam_motd aggiorni il MOTD al momento dell'accesso, ma a volte MOTD non viene aggiornato per giorni e sono perplesso quale potrebbe essere il motivo. Vorrei aggiungere uptime e who output al MOTD, chiamandoli correttamente dagli script /etc/update-motd.d/ , ma sembra piuttosto inutile se agli utenti vengono mostrate informazioni obsolete.

Da update-motd man page:

Executable  scripts  in  /etc/update-motd.d/* are executed by pam_motd(8) as
the root user at each login, and this information is concatenated in /var/run/motd.
The order of script execution is determined by the run-parts(8) --lsbsysinit option
(basically alphabetical order, with a few caveats).

Secondo me, il MOTD dovrebbe essere aggiornato ad ogni accesso. Ma non lo è. E non trovo uno script che aggiorni manualmente il MOTD. Potrei aggiungere una run-parts line a cron , ma non penso che sia il modo corretto per risolvere questo problema, in quanto sembra un trucco o una soluzione alternativa.

La mia ultima speranza era impostare /etc/pam.d/login in questo modo:

# Prints the message of the day upon succesful login.
# (Replaces the 'MOTD_FILE' option in login.defs)
# 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 noupdate
session    optional   pam_motd.so  motd=/run/motd.dynamic
session    optional   pam_motd.so

Ho pensato che rimuovere noupdate avrebbe risolto il problema, ma non lo è.

    
posta MegaBrutal 11.01.2014 - 07:43

2 risposte

4

Recentemente ho incontrato lo stesso problema. Dovrai modificare /etc/pam.d/sshd per rimuovere o commentare anche il noupdate.

    
risposta data chrishas35 30.03.2014 - 00:44
3

update-motd è un semplice script che esegue:

   run-parts --lsbsysinit /etc/update-motd.d 2>/dev/null

in base al manuale run-parts :

   If  the  --lsbsysinit  option  is given, then the names must not end in
   .dpkg-old  or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong  to
   one  or more of the following namespaces: the LANANA-assigned namespace
   (^[a-z0-9]+$);   the   LSB   hierarchical   and   reserved   namespaces
   (^_?([a-z0-9_.]+-)+[a-z0-9]+$);  and  the  Debian cron script namespace
   (^[a-zA-Z0-9_-]+$).

Quindi, per verificare se il problema è legato al nome file update-motd , prova:

   run-parts --test --lsbsysinit /etc/update-motd.d

questo comando stampa i nomi degli script che verrebbero eseguiti, ma in realtà non li eseguono.

    
risposta data Lety 25.10.2014 - 15:50

Leggi altre domande sui tag