一、效果

登录Ubuntu的时候,在控制台可能会弹出一系列提示消息,有欢迎消息、系统信息、更新信息等等:

这些提示消息被称为Message of The Day,简称MOTD

Ubuntu与其它Linux版本不太一样,它引入了MOTD 的概念。

这些消息还可以定制,在/etc/update-motd.d/目录下可以看到很多两位数字开头的文件:

可以对这些文件进行修改,也可以添加新的文件,这些文件前面的数字表示优先顺序,越大越靠后。 比如添加一个99-tip文件:

1#!/bin/sh
2echo "提示信息:"
3printf "不要乱操作\n"

并使用chmod +x 99-tip添加上可执行权限,然后使用sudo run-parts /etc/update-motd.d/就可以立即看到效果,不需要重启系统或者重新登录。注意:echo显示会自动添加换行符,printf不会自动添加换行符。

二、开关

如果想要关闭提示如何操作?

Ubuntu下MOTD之前是使用/etc/login.defs来管理的,后来使用pam来管理了,可以看到/etc/login.defs中的注释:

 1################# OBSOLETED BY PAM ##############
 2#                                               #
 3# These options are now handled by PAM. Please  #
 4# edit the appropriate file in /etc/pam.d/ to   #
 5# enable the equivelants of them.
 6#
 7###############
 8
 9#MOTD_FILE
10#DIALUPS_CHECK_ENAB
11#LASTLOG_ENAB
12#MAIL_CHECK_ENAB
13#OBSCURE_CHECKS_ENAB
14#PORTTIME_CHECKS_ENAB
15#SU_WHEEL_ONLY
16#CRACKLIB_DICTPATH
17#PASS_CHANGE_TRIES
18#PASS_ALWAYS_WARN
19#ENVIRON_FILE
20#NOLOGINS_FILE
21#ISSUE_FILE
22#PASS_MIN_LEN
23#PASS_MAX_LEN
24#ULIMIT
25#ENV_HZ
26#CHFN_AUTH
27#CHSH_AUTH
28#FAIL_DELAY

/etc/pam.d目录下有两个文件与MOTD有关,分别是loginsshd,其中login是控制本机登录的MOTDsshd是控制远程登录的,开关为下面两句:

1.动态MOTD/run/motd.dynamic中,在系统启动后动态生成,可以使用cat /run/motd.dynamic查看内容。 2.静态的在/etc/motd中,默认情况下可能会没有/etc/motd,可以自己新建一个/etc/motd文件,里面写上纯文本内容,即可显示,不需要像/etc/update-motd.d/中的文件一样需要可执行权限,并使用echo或者printf命令来输出。

/etc/motd示例:

1静态提示信息:
2谨慎操作

有的Ubuntu版本还可以使用/etc/default/motd-news中的开关来控制:

 1# Enable/disable the dynamic MOTD news service
 2# This is a useful way to provide dynamic, informative
 3# information pertinent to the users and administrators
 4# of the local system
 5ENABLED=1
 6
 7# Configure the source of dynamic MOTD news
 8# White space separated list of 0 to many news services
 9# For security reasons, these must be https
10# and have a valid certificate
11# Canonical runs a service at motd.ubuntu.com, and you
12# can easily run one too
13URLS="https://motd.ubuntu.com"
14
15# Specify the time in seconds, you're willing to wait for
16# dynamic MOTD news
17# Note that news messages are fetched in the background by
18# a systemd timer, so this should never block boot or login
19WAIT=5

其中的ENABLED1则为显示,为0则不显示。

参考: motd not showing up on Ubuntu 21.10 How To Disable Ads In Terminal Welcome Message In Ubuntu Server https://manpages.ubuntu.com/manpages/kinetic/man8/pam_motd.8.html