Set MOTD on Ubuntu 18.04
Changing the message of the day text on Ubuntu to show hostname
Modifying the message of the day text to remove all the stuff I don't want to see, and showing the name of my host when logging into my VM via SSH.
All the banner/message of the day files are stored in /etc/update-motd.d/ folder. They are ran in numerical order, as long as the file is set to be executable.
[email protected]:~# ll /etc/update-motd.d/ total 57 drwxr-xr-x 2 root root 10 Apr 22 21:32 ./ drwxr-xr-x 86 root root 170 Apr 22 21:33 ../ -rwxr-xr-x 1 root root 1233 Apr 22 21:18 00-header* -rw-r--r-x 1 root root 1157 Aug 6 2018 10-help-text* -rwxr-xr-x 1 root root 4646 Sep 27 2019 50-motd-news* -rw-r--r-x 1 root root 604 Mar 21 2018 80-esm* -rw-r--r-x 1 root root 3017 Mar 21 2018 80-livepatch* -rwxr-xr-x 1 root root 299 May 18 2017 91-release-upgrade*
Files are listed above are displayed roughly below;
- 00-header - basic system information:
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.18-2-pve x86_64)
* Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage
- 50-motd-news: looks like this checks for news from the Ubuntu website and is updated periodically:
* Kubernetes 1.18 GA is now available! See https://microk8s.io for docs or install it with: sudo snap install microk8s --channel=1.18 --classic * Multipass 1.1 adds proxy support for developers behind enterprise firewalls. Rapid prototyping for cloud operations just got easier. https://multipass.run/
- 80-esm - looks like this will display extended security update information if this is enabled / supported on your system
- 80-livepatch - displays a message about Livepatch, content will change if Livepatch is enabled:
* Canonical Livepatch is available for installation. - Reduce system reboots and improve kernel security. Activate at: https://ubuntu.com/livepatch
- 91-release-upgrade - presumably displays that your system is due an upgrade.
I don't want to see the information from 10-help-text, 50-motd-news, 80-esm, 80-livepatch, to stop these from running we just need to set the files as not executable with the chmod -x command.
Navigate to the folder,
cd /etc/update-motd.d/, run the chmod -x command
chmod -x 10-help-text 50-motd-news 80-esm 80-livepatch. To re-enable a message run chmod with the +x
chmod +x 50-motd-news
Now to add the hostname using some ascii text, this can be done using a program call figlet which can be installed using apt install figlet. Or you can simply use DuckDuckGo with figlet followed by the text to generate the text. e.g https://duckduckgo.com/?q=figlet+slant+nginx - the 'slant' part of the text specifies the name of the font, a full list can be found on the figlet website
We then copy the figlet text from DDG and paste it into a new file on the system, I've called it hostname.asc - open the file with
nano /etc/update-motd.d/hostname.asc and paste the text straight in, ensuring that it has maintained its formatting.
_ ____ ____ _(_____ _ __ / __ \/ __ `/ / __ \| |/_/ / / / / /_/ / / / / _> < /_/ /_/\__, /_/_/ /_/_/|_| /____/
Then add another MOTD file in the update-motd.d folder, numbered so that it appears in the correct order. I've called my file 01-hostname. Open the file with
nano /etc/update-motd.d/01-hostname and enter in the following text to output the hostname.asc file to screen on login:
#!/bin/sh printf "$(cat /etc/update-motd.d/hostname.asc)"
As the file is not executable yet it still won't display on login - chmod will need to be used to make the file executable:
chmod +x 01-hostname
After a reboot/logout and back in, when you try to login again you should get the updated motd: