Làm thế nào là / etc / motd được cập nhật?


58

Tôi đã tự hỏi làm thế nào / etc / motd được tự động cập nhật (Tôi đang dùng Ubuntu 10.04, phiên bản máy chủ). Tôi đã tìm thấy trang web cập nhật-motd thông qua tìm kiếm trên web, nhưng chương trình đó không được cài đặt trên máy của tôi. Tuy nhiên, tập tin / etc / motd được cập nhật thường xuyên. Tôi chỉ không biết làm thế nào và thường xuyên. Khi thực hiện locate motd, các tệp sau được liệt kê:

/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

Tôi không là / etc / motd trên Ubuntu 14.04 LTS. Các tập tin bây giờ là /var/run/motd.dynamic và /run/motd.dynamic được liên kết cứng. motd được cập nhật nếu bạn không đăng nhập im lặng. Trong trường hợp đó, bạn sẽ thấy nội dung được tạo sau cùng khi người dùng đăng nhập ở chế độ "không bị che giấu".
randominstanceOfLivingThời gian

Câu trả lời:


57

Nó được cập nhật bằng cách pam_motdđăng nhập. Các update-motd thủ công trang mô tả này:

   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
bạn có thể ép buộcsudo run-parts /etc/update-motd.d/
Pete

@Pete, tôi đã thử lệnh đó và mặc dù nó đã in ra các thông tin liên quan, nhưng nó không thực sự thay đổi văn bản trong đó /etc/motd. Đây có phải là mong đợi?
snapfractalpop

5
@snapfractalpop, Xin lỗi, tôi đã sai. Bạn có thể sử dụng các phần chạy để gỡ lỗi, nó sẽ tiết lộ motd kết quả sẽ là gì nếu bạn đang thực hiện bổ sung /etc/update-motd.d. Theo như tôi có thể nói, cách duy nhất để cập nhật tệp là kích hoạt pam_motd. Trên hệ thống của tôi, nó dường như là dịch vụ đăng nhập và sshd ( grep pam_motd /etc/pam.d/*)
Pete

7
@snapfractalpop Vâng, điều đó được mong đợi. Nếu bạn muốn cập nhật /etc/motdchuyển hướng đầu ra ở đó:run-parts /etc/update-motd.d/ | sudo tee /etc/motd
n.st

2
Để tăng tốc đăng nhập trên máy của tôi, tôi đã chuyển từ libpam-motd sang update-motd. Update-motd sử dụng cronjob thay vì kích hoạt cập nhật khi đăng nhập. sudo apt-get remove libpam-motd; sudo apt-get install update-motd
xer0x

11

Câu trả lời được chấp nhận ở trên là chính xác, tuy nhiên không đầy đủ. Tôi hy vọng điều này cung cấp thêm một chút thông tin cho OP.

Về cơ bản, trên bản cài đặt mới, motd được tạo từ ba nơi:

  1. Các tập lệnh trong /etc/update-motd.d/
  2. Các tệp nhị phân được biên dịch được kiểm soát bởi /etc/pam.d/login
  3. Tập tin / etc / Legal

Số 3 ở đó đề cập đến khối văn bản ở cuối motd của bạn bao gồm "Ubuntu đi kèm với TUYỆT ĐỐI KHÔNG CÓ BẢO HÀNH ...", đó là tệp / etc / hợp pháp . Tuy nhiên, bạn sẽ không tìm thấy bất cứ điều gì trong /etc/update-motd.d/ có đề cập đến nó, cũng như từ "hợp pháp" không xuất hiện ở bất cứ đâu trong tệp /etc/pam.d/login. Nó bao gồm đã được làm cho tối nghĩa và tôi thực sự không biết làm thế nào nó đi vào đó. Ý tôi là tôi biết có {$ HOME} /. Cache / motd.legal được hiển thị nhưng tôi không biết nó đến từ đâu (chưa).

Tệp pam.d / đăng nhập chịu trách nhiệm thông báo email đang chờ xử lý, tuy nhiên điều đó không tối nghĩa. Có một bình luận rất hay mô tả "In trạng thái hộp thư của người dùng khi đăng nhập thành công" ngay trong tệp. Tôi cho rằng về mặt kỹ thuật đó không thực sự là một phần của motd, nhưng nó xuất hiện khi đăng nhập và nếu bạn mới biết rằng sự khác biệt tốt có thể không được đánh giá cao.

Trên bản cài đặt mới 14.04 không có tệp / etc / motd. Nếu bạn tạo một (hoặc tạo một motd.static và liên kết nó với motd), nội dung của tệp đó sẽ được thêm vào văn bản được tạo bởi các tập lệnh update-motd.d nhưng nội dung của / etc / Legal sẽ ngừng hiển thị. Đi hình. Thông báo email vẫn xuất hiện để điều này không làm gián đoạn tập lệnh đăng nhập pam.d / vì vậy tôi nghi ngờ / etc / Legal đang được kéo vào từ đó. Nguồn của nó vẫn là một bí ẩn cho người đọc. Tôi đã nhận thấy rằng khi tôi xóa liên kết / etc / motd (hoặc tệp), từ chối trách nhiệm pháp lý sẽ không ngay lập tức quay trở lại. Phải mất vài phút. Tôi không muốn liên tục thấy từ chối trách nhiệm nên tôi đã xóa văn bản khỏi tệp đó.

Chúc mừng.


1
Ồ, tôi đã quên một phần. Nếu bạn đang truy cập vào máy của mình qua ssh thì cũng có một cài đặt trong tệp / etc / ssh / sshd_config của "PrintLastLog". Đó là những gì kiểm soát dòng "Đăng nhập lần cuối: ...", đây là điều cuối cùng được in sau khi đăng nhập thành công. Đặt nó thành "không" sẽ không khiến đường truyền biến mất, chỉ cần ẩn địa chỉ IP của kết nối ssh thành công cuối cùng. Một lần nữa, về mặt kỹ thuật không phải là một phần của motd nhưng sau đó cũng không phải là sự từ chối hợp pháp và nó tiếp tục hiển thị.
David Kuhl

10

Để mở rộng một chút về câu trả lời của David Kuhl :

Một bản cài đặt mới của Ubuntu Server 14.04.1 LTS dường như không cài đặt các gói chung phổ biến cũng như cập nhật-thông báo cập nhật. Do đó, các đoạn script sau không được cài đặt:

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

Do đó, để có được tất cả thông tin đăng nhập ssh có sẵn từ các máy chủ được di chuyển từ 12.04 LTS, người ta phải cài đặt các gói trên một cách thủ công:

sudo apt-get install landscape-common update-notifier-common
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.