/ etc / motd如何更新?


58

我想知道如何自动更新/ etc / motd(我在Ubuntu 10.04服务器版上)。我通过网络搜索找到了更新主题的联机帮助页,但该程序未安装在我的计算机上。但是,/ 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

Answers:


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

@Pete,我尝试了该命令,尽管它打印出了相关信息,但实际上并没有更改中的文本/etc/motd。这是预期的吗?
snapfractalpop 2013年

5
@snapfractalpop,对不起,我错了。您可以使用运行部件进行调试,如果您对进行添加,它将吐出结果motd将是什么/etc/update-motd.d。据我所知,更新文件的唯一方法是触发pam_motd。在我的系统上,这似乎是服务登录名和sshd(grep pam_motd /etc/pam.d/*
皮特

7
@snapfractalpop是的,这是预期的。如果要更新/etc/motd重定向输出,请执行以下操作:run-parts /etc/update-motd.d/ | sudo tee /etc/motd
n.st 2014年

2
为了加快机器上的登录速度,我从libpam-motd切换到update-motd。Update-motd使用cronjob而不是在登录时触发更新。sudo apt-get remove libpam-motd; sudo apt-get install update-motd
xer0x 2014年

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/下找不到任何提及它的内容,在/etc/pam.d/login文件中的任何位置也没有出现“ legal”一词。它的包含已变得晦涩难懂,我真的不知道它是如何进入的。我的意思是我知道显示了{$ HOME} /。cache / motd.legal,但是我不知道这是哪里来的(还)。

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访问计算机,则/ etc / ssh / sshd_config文件中的“ PrintLastLog”中还有一个设置。这就是控制“上次登录:...”行的内容,这是成功登录后最后要打印的内容。将其设置为“ no”不会使线路消失,只是隐藏最后一次成功的ssh连接的IP地址。同样,从技术上讲,它不是应有尽有的一部分,但是,该死的法律免责声明也没有,而且它还在不断出现。
David Kuhl 2014年

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.