Come viene aggiornato / etc / motd?


58

Mi chiedevo come / etc / motd si aggiorna automaticamente (sono su Ubuntu 10.04, edizione server). Ho trovato la manpage update-motd tramite una ricerca web, ma quel programma non è installato sulla mia macchina. Il file / etc / motd viene comunque aggiornato regolarmente. Semplicemente non so come e quanto spesso. Quando si esegue un locate motd, sono elencati i seguenti file:

/etc/motd
/etc/update-motd.d
/etc/update-motd.d/00-header
/etc/update-motd.d/10-help-text
/etc/update-motd.d/20-cpu-checker
/etc/update-motd.d/50-landscape-sysinfo
/etc/update-motd.d/90-updates-available
/etc/update-motd.d/91-release-upgrade
/etc/update-motd.d/98-reboot-required
/etc/update-motd.d/99-footer
/home/me/.cache/motd.legal-displayed
/lib/security/pam_motd.so
/usr/bin/motd+shell
/usr/lib/update-manager/release-upgrade-motd
/usr/lib/update-notifier/update-motd-cpu-checker
/usr/lib/update-notifier/update-motd-reboot-required
/usr/lib/update-notifier/update-motd-updates-available
/usr/share/base-files/motd.md5sums
/usr/share/man/man1/motd+shell.1.gz
/usr/share/man/man5/motd.5.gz
/usr/share/man/man5/motd.tail.5.gz
/usr/share/man/man5/update-motd.5.gz
/usr/share/man/man8/pam_motd.8.gz
/usr/share/ubuntu-serverguide/html/C/pam_motd.html

Non lo sono / etc / motd su Ubuntu 14.04 LTS. I file ora sono /var/run/motd.dynamic e /run/motd.dynamic che sono strettamente collegati. motd viene aggiornato se non si esegue il login hush. In tal caso, vedresti i contenuti creati per ultimi quando un utente effettua un login in modalità "non hush".
randominstanceOfLivingThing

Risposte:


57

È aggiornato pam_motdall'accesso. La pagina di manuale di update-motd descrive questo:

   Ubuntu introduced the update-motd framework, by which  the  motd(5)  is
   dynamically assembled from a collection of scripts at login.

   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).

   On   Ubuntu   systems,  /etc/motd  is  typically  a  symbolic  link  to
   /var/run/motd.

26
puoi forzare consudo run-parts /etc/update-motd.d/
Pete il

@Pete, ho provato quel comando, e sebbene abbia stampato le informazioni rilevanti, in realtà non ha cambiato il testo /etc/motd. È previsto?
snapfractalpop,

5
@snapfractalpop, Scusa, ho sbagliato. È possibile utilizzare le parti di scorrimento per il debug, sputerà quale sarà il motd risultante se si stanno effettuando aggiunte /etc/update-motd.d. Per quanto ne so, l'unico modo per aggiornare il file è attivando pam_motd. Sul mio sistema sembra essere il servizio login e sshd ( grep pam_motd /etc/pam.d/*)
Pete

7
@snapfractalpop Sì, è previsto. Se vuoi aggiornare /etc/motdreindirizza l'output lì:run-parts /etc/update-motd.d/ | sudo tee /etc/motd
n.

2
Per velocizzare gli accessi sul mio computer, sono passato da libpam-motd a update-motd. Update-motd usa un cronjob invece di innescare l'aggiornamento all'accesso. sudo apt-get remove libpam-motd; sudo apt-get install update-motd
xer0x,

11

La risposta accettata sopra è corretta, per quanto incompleta. Spero che questo fornisca ulteriori informazioni per l'OP.

Fondamentalmente, su una nuova installazione, il motd viene generato da tre punti:

  1. Gli script in /etc/update-motd.d/
  2. I binari compilati controllati da /etc/pam.d/login
  3. Il file / etc / legal

Il numero 3 si riferisce al blocco di testo alla fine del tuo motd che include "Ubuntu viene ASSOLUTAMENTE NESSUNA GARANZIA ...", questo è il file / etc / legal . Tuttavia non troverai nulla in /etc/update-motd.d/ che lo menziona, né la parola "legale" appare in alcun punto nel file /etc/pam.d/login. La sua inclusione è stata resa oscura e davvero non so come ci entri. Voglio dire, so che c'è un {$ HOME} /. Cache / motd.legal-visualizzato, ma non so da dove provenga (ancora).

Il file pam.d / login è responsabile della notifica di e-mail in sospeso, tuttavia ciò non è oscuro. C'è un bel commento che descrive "Stampa lo stato della cassetta postale dell'utente dopo un accesso riuscito" proprio lì nel file. Suppongo che tecnicamente non faccia davvero parte del motd, ma si presenta al login e se sei nuovo, questa distinzione potrebbe non essere apprezzata.

Su una nuova installazione di 14.04 non esiste alcun file / etc / motd. Se ne crei uno (o crei un motd.static e lo colleghi simbolicamente a motd), il contenuto di quel file verrà aggiunto al testo generato dagli script update-motd.d ma il contenuto di / etc / legal smetterà di apparire. Vai a capire. L'avviso e-mail appare ancora, quindi questo non interrompe lo script pam.d / login, quindi dubito che / etc / legal venga estratto da lì. Il suo approvvigionamento rimane un mistero per il lettore. Ho notato che quando rimuovo il link / etc / motd (o file) il disclaimer legale non ritorna immediatamente. Ci vogliono pochi minuti Non volevo vedere costantemente la dichiarazione di non responsabilità, quindi ho eliminato il testo da quel file.

Saluti.


1
Oh, ho dimenticato una parte. Se accedi al tuo computer tramite ssh, c'è anche un'impostazione nel file / etc / ssh / sshd_config di "PrintLastLog". Questo è ciò che controlla la riga "Ultimo accesso: ...", che è l'ultima cosa da stampare dopo un accesso riuscito. Impostandolo su "no" non si farà sparire la linea, basta nascondere l'indirizzo IP dell'ultima connessione ssh riuscita. Ancora una volta, non tecnicamente parte del motd ma poi nemmeno il maledetto disclaimer legale e continua a presentarsi.
David Kuhl,

10

Per espandere un po ' la risposta di David Kuhl :

Una nuova installazione di Ubuntu Server 14.04.1 LTS a quanto pare non installa pacchetti comuni di paesaggio né di notifica di aggiornamento. Pertanto non sono installati i seguenti script:

/etc/update-motd.d/50-landscape-sysinfo
/etc/update-motd.d/90-updates-available

Pertanto, per ottenere tutte le informazioni di accesso ssh disponibili dai server migrati da 12.04 LTS, è necessario installare manualmente i pacchetti sopra:

sudo apt-get install landscape-common update-notifier-common
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.