如果你正在使用最新的 Ubuntu 服务器版本,你可能已经注意到欢迎消息中有一些与 Ubuntu 服务器平台无关的促销链接。你可能已经知道 MOTD,即 Message Of The Day 的开头首字母,在 Linux 系统每次登录时都会显示欢迎信息。通常,欢迎消息包含操作系统版本,基本系统信息,官方文档链接以及有关最新安全更新等的链接。这些是我们每次通过 SSH 或本地登录时通常会看到的内容。但是,最近在终端欢迎消息中出现了一些其他链接。我已经几次注意到这些链接,但我并在意,也从未点击过。题图是我的 Ubuntu 18.04 LTS 服务器上显示的终端欢迎消息。
正如你在上面截图中所看到的,欢迎消息中有一个 bit.ly 链接和 Ubuntu wiki 链接。有些人可能会惊讶并想知道这是什么。其实欢迎信息中的链接无需担心。它可能看起来像广告,但并不是商业广告。链接实际上指向到了 Ubuntu 官方博客 和 Ubuntu wiki。正如我之前所说,其中的一个链接是不相关的,没有任何与 Ubuntu 服务器相关的细节,这就是为什么我开头称它们为广告。
虽然我们大多数人都不会访问 bit.ly 链接,但是有些人可能出于好奇去访问这些链接,结果失望地发现它只是指向一个外部链接。你可以使用任何 URL 去短网址服务,例如 unshorten.it,在访问真正链接之前,查看它会指向哪里。或者,你只需在 bit.ly 链接的末尾输入加号(+)即可查看它们的实际位置以及有关链接的一些统计信息。
什么是 MOTD 以及它是如何工作的?2009 年,来自 Canonical 的 Dustin Kirkland 在 Ubuntu 中引入了 MOTD 的概念。它是一个灵活的框架,使管理员或发行包能够在 /etc/update-motd.d/ 位置添加可执行脚本,目的是生成在登录时显示有益的、有趣的消息。它最初是为 Landscape(Canonical 的商业服务)实现的,但是其它发行版维护者发现它很有用,并且在他们自己的发行版中也采用了这个特性。
如果你在 Ubuntu 系统中查看 /etc/update-motd.d/,你会看到一组脚本。一个是打印通用的 “欢迎” 横幅。下一个打印 3 个链接,显示在哪里可以找到操作系统的帮助。另一个计算并显示本地系统包可以更新的数量。另一个脚本告诉你是否需要重新启动等等。
从 Ubuntu 17.04 起,开发人员添加了 /etc/update-motd.d/50-motd-news,这是一个脚本用来在欢迎消息中包含一些附加信息。这些附加信息是:
重要的关键信息,例如 ShellShock、Heartbleed 等
生命周期(EOL)消息,新功能可用性等
在 Ubuntu 官方博客和其他有关 Ubuntu 的新闻中发布的一些有趣且有益的帖子
另一个特点是异步,启动后约 60 秒,systemd 计时器运行 /etc/update-motd.d/50-motd-news –force 脚本。它提供了 /etc/default/motd-news 脚本中定义的 3 个配置变量。默认值为:ENABLED=1, URLS="https://motd.ubuntu.com", WAIT="5"。
以下是 /etc/default/motd-news 文件的内容:
$ cat/etc/default/motd-news
#Enable/disable the dynamic MOTD news service
#Thisis a useful way to provide dynamic, informative
# information pertinent to the usersand administrators
# of the local system
ENABLED=1
#Configure the source of dynamic MOTD news
#White space separated list of 0 to many news services
#For security reasons, these must be https
#and have a valid certificate
#Canonical runs a service at motd.ubuntu.com,and you
# can easily run one too
URLS="https://motd.ubuntu.com"
#Specify the timein seconds, you're willing to wait for
# dynamic MOTD news
# Note that news messages are fetched in the background by
# a systemd timer, so this should never block boot or login
WAIT=5
好事情是 MOTD 是完全可定制的,所以你可以彻底禁用它(ENABLED=0)、根据你的意愿更改或添加脚本、以秒为单位更改等待时间等等。