來自遠端來源的動態 motd 訊息?

來自遠端來源的動態 motd 訊息?

莫德允許顯示 Linux 使用者的歡迎登入訊息。

是否可以配置 motd 來取得遠端 URL?

範例場景:

  • 通知使用者有關 Python 2 生命週期結束的信息,但在截止日期過後停止這樣做。

  • 如果未安裝 Python2,則禁止顯示此訊息

更複雜的場景範例:

  • 傳遞一個參數,動態評估它並通知使用者不再支援該作業系統。

答案1

對於系統範圍的訊息,可以在啟動時產生 motd – Ubuntu 和 Debian 目前就是這樣做的。他們有一個update-motd系統,可以根據標準標題、提示、公告、系統更新訊息等組裝文字檔案。

在大多數情況下,motd 由名為 的 PAM 模組顯示pam_motd。 (Debian/Ubuntu 系統實際上是透過呼叫模組兩次來運作的——首先是靜態的 /etc/motd,然後是自動產生的 /run/motd。)

因此,如果您需要更多動態文字(例如,基於登入的使用者名稱),您可以建立您自己的該模組版本並使其執行您想要的任何操作。

然而,不要讓它直接從網路檢索文件,因為這只會減慢登入速度並每次都會惹惱您的用戶。相反,設定一個下載檔案的 cronjob,然後只需使用檔案名稱作為參數呼叫現有的 pam_motd 模組:

session optional pam_motd.so motd=/tmp/downloaded_message.txt

答案2

/etc/motd只是一個靜態文字檔。

您所說的聽起來更像是可以使用登入腳本實現的東西。

較新的 Linux 發行版往往有一個目錄/etc/profile.d,您可以在其中放入要在使用者登入時執行的腳本片段。/bin/sh.sh後綴的 POSIX 相容,另一個使用csh帶有後綴的語法.csh

對於較舊的發行版,您可以將所需的功能新增至/etc/profile/etc/csh.login(分別適用於所有 POSIXsh相容 shell 和csh/ tcshshell)。

您當然可以製作一個腳本來聯繫特定的遠端 URL 並添加一些相關的系統訊息,例如自訂 HTTP 標頭,遠端可以解析這些資訊並使用自訂的訊息文字進行回應。

但是,如果從遠端 URL 返回的回應不僅僅是純文本,還包含潛在的可執行內容,則此機制變得安全敏感:如果包含遠端 URL(或網絡,或登入腳本本身)的伺服器不安全,它可能成為入侵者存取您的系統的一種方式。為了防止這種情況發生,您在實施時必須更加小心。

您還應該考慮如果遠端 URL 無法存取或網路連結斷開時會發生什麼:您會希望訊息系統逾時並在大多數錯誤情況下繼續登入。

相關內容