/ etc / motd는 어떻게 업데이트됩니까?


58

/ etc / motd가 자동으로 업데이트되는 방법이 궁금합니다 (Ubuntu 10.04, server edition). 웹 검색을 통해 update-motd 맨 페이지를 찾았지만 해당 프로그램이 내 컴퓨터에 설치되어 있지 않습니다. 그러나 / etc / motd 파일은 정기적으로 업데이트됩니다. 나는 얼마나 자주 얼마나 자주 모른다. 를 수행하면 locate motd다음 파일이 나열됩니다.

/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

Ubuntu 14.04 LTS에서 / etc / motd가 아닙니다. 파일은 이제 하드 링크 된 /var/run/motd.dynamic 및 /run/motd.dynamic입니다. 로그인을 숨기지 않으면 motd가 업데이트됩니다. 이 경우 사용자가 "허시하지 않음"모드로 로그인 할 때 마지막에 생성 된 내용이 표시됩니다.
randominstanceOfLivingThing

답변:


57

pam_motd로그인하면 업데이트됩니다 . 갱신 MOTD 매뉴얼 페이지는이 설명합니다 :

   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
당신과 함께 강제 할 수sudo run-parts /etc/update-motd.d/
피트

@Pete, 나는 그 명령을 시도했지만 관련 정보를 인쇄했지만 실제로 텍스트를 변경하지 않았습니다 /etc/motd. 이것이 예상됩니까?
snapfractalpop

5
@snapfractalpop, 죄송합니다. 잘못되었습니다. 디버깅을 위해 run-parts를 사용할 수 있으며, 추가 할 경우 결과 motd가 무엇인지 알 수 있습니다 /etc/update-motd.d. 내가 알 수있는 한, 파일을 업데이트하는 유일한 방법은 pam_motd를 트리거하는 것입니다. 내 시스템에서는 서비스 로그인 및 sshd ( grep pam_motd /etc/pam.d/*)
Pete

7
@snapfractalpop 그렇습니다. /etc/motd출력 을 업데이트 하려면 다음을 수행하십시오.run-parts /etc/update-motd.d/ | sudo tee /etc/motd
n.st

2
내 컴퓨터에서 로그인 속도를 높이기 위해 libpam-motd에서 update-motd로 전환했습니다. Update-motd는 로그인시 업데이트를 트리거하는 대신 cronjob을 사용합니다. sudo apt-get remove libpam-motd; sudo apt-get install update-motd
xer0x

11

위의 답변은 정확하지만 불완전합니다. 이것이 OP에 대한 정보를 조금 더 제공하기를 바랍니다.

기본적으로 새로 설치하면 motd는 다음 세 곳에서 생성됩니다.

  1. /etc/update-motd.d/의 스크립트
  2. /etc/pam.d/login으로 제어되는 컴파일 된 바이너리
  3. / etc / legal 파일

숫자 3은 motd의 끝에 "Ubuntu는 절대적으로 보증이 제공되지 않습니다 ..."를 포함하는 텍스트 블록을 나타냅니다. 이것은 / etc / legal 파일입니다. 그러나 /etc/update-motd.d/ 아래에 언급 된 내용이없고 "legal"이라는 단어가 /etc/pam.d/login 파일의 어느 곳에도 나타나지 않습니다. 포함이 모호해졌으며 실제로 어떻게 들어가는 지 모르겠습니다. 나는 {$ HOME} /. cache / motd.legal-displayed가 있다는 것을 알고 있지만 그것이 어디에서 왔는지 모르겠다.

pam.d / login 파일은 보류중인 전자 메일 알림을 담당하지만 모호하지는 않습니다. 파일에 "성공적으로 로그인하면 사용자 사서함 상태를 인쇄합니다"라는 설명이 있습니다. 나는 기술적으로 그것이 motd의 일부가 아니라고 생각하지만, 로그인 할 때 나타나고 새로운 경우에는 미세한 구별이 인정되지 않을 수 있습니다.

14.04를 새로 설치하면 / etc / motd 파일 이 없습니다 . 하나를 만들면 (또는 motd.static을 만들고 motd로 심볼릭 링크하면) 해당 파일의 내용이 update-motd.d 스크립트에 의해 생성 된 텍스트에 추가되지만 / etc / legal의 내용은 표시되지 않습니다. 그림을 이동. 전자 메일 알림이 여전히 표시되므로 pam.d / login 스크립트가 중단되지 않으므로 / etc / legal이 여기에서 가져 오는 것 같습니다. 소싱은 독자에게 미스터리로 남아 있습니다. / etc / motd 링크 (또는 파일)를 제거 할 때 법적 면책 조항이 즉시 다시 표시되지 않습니다. 몇 분이 걸립니다. 고지 사항을 지속적으로보고 싶지 않았으므로 해당 파일에서 텍스트를 삭제했습니다.

건배.


1
아, 나는 한 부분을 잊었다. ssh를 통해 컴퓨터에 액세스하는 경우 "PrintLastLog"의 / etc / ssh / sshd_config 파일에도 설정이 있습니다. 이것이 "Last login : ..."줄을 제어하는 ​​것인데, 로그인에 성공하면 마지막으로 인쇄됩니다. "no"로 설정하면 회선이 사라지지 않고 마지막으로 성공한 ssh 연결의 IP 주소를 숨길 수 있습니다. 다시 말하지만 기술적으로는 motd의 일부는 아니지만 법적 법적 면책 조항도 아니며 계속 표시됩니다.
David Kuhl

10

David Kuhl의 답변을 조금 확장하려면 :

Ubuntu Server 14.04.1 LTS를 새로 설치하면 landscape-common 패키지 나 update-notifier-common 패키지는 설치되지 않는 것 같습니다. 따라서 다음 스크립트가 설치되지 않았습니다.

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

따라서 12.04 LTS에서 마이그레이션 된 서버에서 사용 가능한 모든 ssh 로그인 정보를 얻으려면 위 패키지를 수동으로 설치해야합니다.

sudo apt-get install landscape-common update-notifier-common
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.