ubuntu修改登錄信息(本機和SSH登錄)


1.MOTD

1.1 什么是MOTD

  • motd是message of the day的縮寫,意思是“當天的提示信息”,通常在用戶成功登錄到Linux后出現,該信息可以從/etc/motd文本文件中找到。
  • 提示:UNIX/Linux系統管理員也通常會把一些重要的信息寫到 /etc/motd里面,以方便其他人或自己下次成功登錄時需要注意什么和做什么,非常方便。
  • 一般來講 /etc/motd是一個靜態文件,里面僅僅含有安裝更新的版本信息。但是ubuntu引入了update-motd框架,他可以在登陸時候動態的組裝腳本(assembled from a collection of scripts)。
  • 執行/etc/update-motd.d/*下的腳本是使用的pam_motd,而這個信息則會被組合在 /run/motd.dynamic中(實際上,我發現update-motd.d中的腳本是被符號鏈接到motd.dynamic中,進而通過pam執行文件夾才實現動態motd)

1.2 如何修改MOTD?

  • MOTD的fragments必須存放在/etc/update-motd.d文件夾下面,而且必須是一個可執行文件。
  • 這些腳本必須命名為NN-xxxx,其中NN是一個二位數代表他們在MOTD的位置,比如你准備放在最后一個,可以直接填寫99-xxx
  • 在寫完bash后,必須改變為可執行文件sudo chmod +x /etc/update-motd.d/99-custom
  • 檢測是否成功run-parts /etc/update-motd.d/

1.3 pam.d是什么?

本來關於MOTD的東西是由/etc/login.defs來管理的,后來由/etc/pam.d/login來管理。如下圖所示:

很容易發現,一般的靜態MOTD在/etc/motd中存放,而動態的MOTD在/run/motd.dynamic中存放,那么他們和/etc/update-motd.d是什么關系呢?上面講update-motd.d中的東西會存放在motd.dynamic中,然后motd.dynamic再通過pam_motd執行。
這里的pam_motd其實就是pam_motd.so用於執行update-motd.d文件夾中可執行文件的。

因此,只需要將/etc/pam.d/login中的pam_motd.so motd=/run/motd.dynamic改為pam_motd.so motd=/etc/update-motd.d即可,或者使用符號鏈接也可以。(不知道為什么我的阿里服務器沒有符號鏈接)

1.3 寫一個自己的LOGO MOTD:

apt-get figlet
figlet Ssozh > /etc/Ssozh.txt
vim 92-ssozh
chmod +x ./92-ssozh
run-parts /etc/update-motd.d/
ln -s  /etc/update-motd.d/ /run/motd.dynamic

注意:figlet的內容不能放在update-motd.d中,會無法找到該文件!
其中92-ssozh中的內容:

#!/bin/sh
# Ssozh banner
cat /etc/Ssozh.txt

最終效果圖:

參考博客:
https://linuxconfig.org/how-to-change-welcome-message-motd-on-ubuntu-18-04-server
http://manpages.ubuntu.com/manpages/bionic/man5/update-motd.5.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM