Bagaimana / etc / motd diperbarui?

58

Saya bertanya-tanya bagaimana / etc / motd diperbarui secara otomatis (saya di Ubuntu 10.04, edisi server). Saya menemukan halaman update-motd melalui pencarian web, tetapi program itu tidak diinstal pada mesin saya. File / etc / motd diperbarui secara teratur. Saya hanya tidak tahu bagaimana dan seberapa sering. Saat melakukan locate motd, file-file berikut terdaftar:

/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
daniel kullmann
sumber
Saya tidak / etc / motd di Ubuntu 14.04 LTS. File-file sekarang adalah /var/run/motd.dynamic dan /run/motd.dynamic yang sulit ditautkan. motd diperbarui jika Anda tidak melakukan login diam. Dalam hal ini Anda akan melihat konten yang dibuat terakhir ketika pengguna melakukan login dalam mode "non-hushed".
randominstanceOfLivingThing

Jawaban:

57

Ini diperbarui oleh pam_motdsaat masuk. The update-motd halaman panduan menjelaskan ini:

   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.
Marius Gedminas
sumber
26
Anda dapat memaksa dengansudo run-parts /etc/update-motd.d/
Pete
@ Pete, saya mencoba perintah itu, dan meskipun mencetak informasi yang relevan, itu tidak benar-benar mengubah teks /etc/motd. Apakah ini yang diharapkan?
snapfractalpop
5
@snapfractalpop, Maaf, saya salah. Anda dapat menggunakan run-parts untuk debugging, itu akan memuntahkan apa yang akan dihasilkan jika Anda membuat tambahan /etc/update-motd.d. Sejauh yang saya tahu, satu-satunya cara untuk memperbarui file adalah dengan memicu pam_motd. Pada sistem saya tampaknya layanan masuk dan sshd ( grep pam_motd /etc/pam.d/*)
Pete
7
@snapfractalpop Ya, itu yang diharapkan. Jika Anda ingin memperbarui /etc/motdredirect output di sana:run-parts /etc/update-motd.d/ | sudo tee /etc/motd
n.st
2
Untuk mempercepat login di komputer saya, saya beralih dari libpam-motd ke update-motd. Update-motd menggunakan cronjob alih-alih memicu pembaruan saat masuk. sudo apt-get remove libpam-motd; sudo apt-get install update-motd
xer0x
11

Jawaban yang diterima di atas benar, namun tidak lengkap. Saya berharap ini memberikan sedikit lebih banyak info untuk OP.

Pada dasarnya, pada instalasi baru, motd dihasilkan dari tiga tempat:

  1. Skrip di /etc/update-motd.d/
  2. Binari yang dikompilasi dikendalikan oleh /etc/pam.d/login
  3. File / etc / legal

Nomor 3 di sana mengacu pada blok teks pada akhir motd Anda yang mencakup "Ubuntu hadir dengan TANPA TANPA JAMINAN ...", itulah file / etc / legal . Namun Anda tidak akan menemukan apa pun di bawah /etc/update-motd.d/ yang menyebutkannya, juga kata "legal" tidak muncul di mana pun di file /etc/pam.d/login. Penyertaannya dibuat tidak jelas dan saya benar-benar tidak tahu bagaimana hasilnya di sana. Maksud saya, saya tahu ada {$ HOME} /. Cache / motd.legal-display tetapi saya tidak tahu dari mana asalnya (belum).

File pam.d / login bertanggung jawab atas pemberitahuan email yang tertunda, namun itu tidak jelas. Ada komentar yang bagus menggambarkan "Mencetak status kotak surat pengguna setelah login berhasil" di sana dalam file. Saya kira secara teknis itu tidak benar-benar bagian dari motd, tetapi itu muncul saat login dan jika Anda baru perbedaan yang baik mungkin tidak dihargai.

Pada instalasi baru 14,04 tidak ada file / etc / motd. Jika Anda membuat satu (atau membuat motd.static dan symlink ke motd) isi file itu akan ditambahkan ke teks yang dihasilkan oleh skrip update-motd.d tetapi isi dari / etc / legal akan berhenti muncul. Sosok pergi. Pemberitahuan email masih muncul sehingga ini tidak mengganggu skrip pam.d / login jadi saya ragu / etc / legal sedang ditarik dari sana. Sumbernya tetap menjadi misteri bagi pembaca. Saya perhatikan bahwa ketika saya menghapus tautan / etc / motd (atau file) penafian hukum tidak segera kembali. Butuh beberapa menit. Saya tidak ingin terus melihat pelepasan tanggung jawab hukum sehingga saya menghapus teks dari file itu.

Tepuk tangan.

David Kuhl
sumber
1
Oh, saya lupa satu bagian. Jika Anda mengakses mesin Anda melalui ssh ada juga pengaturan di file / etc / ssh / sshd_config dari "PrintLastLog". Itulah yang mengontrol baris "Login terakhir: ...", yang merupakan hal terakhir yang dicetak setelah login berhasil. Menyetelnya ke "tidak" tidak akan membuat sambungan telepon hilang, cukup sembunyikan alamat IP dari koneksi ssh terakhir yang berhasil. Sekali lagi, secara teknis bukan bagian dari motd, tetapi kemudian tidak ada sangkalan hukum sialan dan itu terus muncul.
David Kuhl
10

Untuk sedikit memperluas jawaban David Kuhl :

Instalasi baru Ubuntu Server 14.04.1 LTS tampaknya tidak menginstal paket landscape-common atau update-notifier-common. Dengan demikian skrip berikut tidak diinstal:

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

Jadi, untuk mendapatkan semua informasi login ssh yang tersedia dari server yang dimigrasikan dari 12,04 LTS, Anda harus menginstal paket-paket di atas secara manual:

sudo apt-get install landscape-common update-notifier-common
skitheo
sumber