Saya ingin memiliki motd yang dinamis, tetapi saya tidak tahu bagaimana melakukannya.
Saya mencoba apa yang saya temukan, menambahkan /etc/update-motd.d/00-header
, 10-sysinfo
, 90-footer
, dan symlinking untuk /etc/motd
/var/run/motd.dynamic
, /run/motd.dynamic
, /run/motd
atau /var/run/motd
.
Saya memiliki baris-baris ini di /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
Saya juga bingung dengan systemd.
Apakah ada cara untuk melakukan ini? Bisakah seseorang memberikan contoh dengan kekayaan sederhana?
pam_motd.so noupdate
menjadi masalah di sana?Jawaban:
Saya dapat menguji dinamik-motd sederhana dengan contoh keberuntungan pada host Debian Jessie 8.2 saya seperti di bawah ini dan menemukan masalah tersebut terkait dengan perilaku buggy.
Membuat dua file uji seperti di bawah ini dan membuatnya dapat dieksekusi
Namun saat ini, tidak ada perubahan motd. Jadi saya strace'd proses sshd. Dari jejak itu (bagian menarik yang ditunjukkan di bawah), Anda dapat melihat bahwa file motd.new yang baru dibuat diubah namanya menjadi / var / run / motd. Namun ini kemudian mencoba membaca dari /run/motd.dynamic - yang tidak pernah dibuat
Masalah ini tampaknya terkait dengan inkonsistensi dengan modul pam_motd. Lihat laporan bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743286;msg=2
Cukup mengubah lokasi file motd dari
/run/motd.dynamic
menjadi/run/motd
di/etc/pam.d/sshd
- membuatnya berfungsi untuk sayaIni adalah contoh MOTD yang terlihat saat login ssh ...
sumber
.new
di akhir di/etc/pam.d/sshd
:session optional pam_motd.so motd=/run/motd.new
dan tautansudo ln ds /run/motd /etc/motd
. Dan saya lupaexport LANG="eo"
untuk melihat keberuntungan./run/etc/motd.dynamic.new
Ini telah berubah selama bertahun-tahun:
Pertama ada
/etc/motd
(statis).Kemudian Ubuntu datang dengan paket mereka sendiri
update-motd
berdasarkan pada skrip yang dipanggil dari cron.Akhirnya, PAM menyalin ide Ubuntu tentang /etc/update-motd.d/, dan karenanya Debian dan yang lainnya juga memiliki perilaku itu.
Ada penjelasan di sini
https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/
Jadi beginilah keadaannya saat ini: PAM hanya akan membaca
/var/run/motd.dynamic
dan/etc/motd
jika ada (tempel dari posting)/etc/motd
- File klasik dan statis. Tidak ada lagi di Ubuntu 16.04 LTS, bahkan tidak sebagai tautan simbolis ke / var / run / motd. Jika itu dibuat, namun isinya akan dicetak juga./var/run/motd
- Ini digunakan oleh implementasi pertama Ubuntu. Itu tidak digunakan lagi. Itu hanya diabaikan oleh PAM./var/run/motd.dynamic
- Inilah yang ditunjukkan saat masuk saat ini. Ini diperbarui oleh /etc/init.d/motd di setiap boot. Itu juga diperbarui oleh PAM dengan menjalankan skrip di /etc/update-motd.d/, jika ada./etc/motd.tail
- Paket Ubuntu digunakan untuk mengisi /etc/update-motd.d. Salah satunya akan menambahkan konten file ini sehingga mudah untuk menambahkan konten statis. Script itu tidak ada dalam paket lagi, jadi file tidak memiliki efek yang diinginkan.Contohnya dari postingan
sumber