Scripting
如何追踪 ssh 登錄消息的來源?
我使用 Linux Mint 15(基本上是 Ubuntu 13.04)在我的 linux 機器上安裝了 mailutils。
當我登錄時,我得到以下資訊:
Welcome to Linux Mint 15 Olivia (GNU/Linux 3.8.0-32-generic i686) Welcome to Linux Mint * Documentation: http://www.linuxmint.com No mail. Last login: Wed Nov 6 01:33:10 2013 from xxxxxxxxxxxxxxxxxxxxxxx BFL SingleSC: 3s ago - [2013-11-06 01:37:33] 5s:57.83 avg:57.96 u:56.96 Gh/s
我添加了最後一行,根據我的喜好著色,作為一個自定義腳本,它可以更新我在 ~/.bashrc 中的 BFL 比特幣雜湊設備的狀態。
我現在想
No mail.
從 mailutils 中為其餘部分著色,尤其是行,並刪除重複的“歡迎使用 Linux Mint”消息和換行符。我一直在專門搜尋 mailutils 部分,但在以下位置找不到對它的任何引用:
- ~/.bashrc
- ~/.profile
- /etc/profile
- /etc/profile.d/*
- /etc/bashrc
- /etc/init.d/*
- /etc/rc.local
- /etc/rc*.d (1, 2, 3, 4, 5, 6, S)
那麼 - 我如何才能找到這些消息的生成位置,以便我可以隨意修改和著色它們?
根據一些研究更新了答案
刪除重複的歡迎資訊
- 由於您使用 ssh 登錄,因此第一條歡迎消息應該來自
/etc/issue.net
. 要刪除消息,只需刪除該文件的內容。- 要刪除第二條歡迎消息,請刪除
/etc/motd
.著色關於郵件的行
要為那條線著色,我能想到的最簡單的選擇需要相當多的低級工作:選擇是您
pam_mail.so
自己修改和建構。這些是修改它和安裝修改版本的步驟
- 從 linux-pam.org(官方項目站點)下載Linux-PAM 原始碼。
- 提取原始碼(這將創建一個名為 的新目錄
Linux-PAM-1.1.8
)並 cd 到它:# tar xzvf Linux-PAM-1.1.8.tar.gz # cd Linux-PAM-1.1.8
- 將文件中的以下行(以 開頭的
+
行,總共 4 行)modules/pam_mail/pam_mail.c
更改為以下差異顯示(使用 生成diff -u
)(文件名pam_mail.c.new
只是我可以生成該差異的臨時文件):--- pam_mail.c 2013-06-18 17:11:21.000000000 +0300 +++ pam_mail.c.new 2013-12-29 16:57:49.759298926 +0200 @@ -294,17 +294,17 @@ switch (type) { case HAVE_NO_MAIL: - retval = pam_info (pamh, "%s", _("No mail.")); + retval = pam_info (pamh, "%s", _("\\033[0;1;31mNo mail.\\033[0m")); break; case HAVE_NEW_MAIL: - retval = pam_info (pamh, "%s", _("You have new mail.")); + retval = pam_info (pamh, "%s", _("\\033[0;1;31mYou have new mail.\\033[0m")); break; case HAVE_OLD_MAIL: - retval = pam_info (pamh, "%s", _("You have old mail.")); + retval = pam_info (pamh, "%s", _("\\033[0;1;31mYou have old mail.\\033[0m")); break; case HAVE_MAIL: default: - retval = pam_info (pamh, "%s", _("You have mail.")); + retval = pam_info (pamh, "%s", _("\\033[0;1;31mYou have mail.\\033[0m")); break; } else
我只是
\\033[0;1;31m
在這些消息的開頭和這些消息\\033[0m
的結尾添加了內容。**注意:**現在它將這些消息顯示為紅色;從ascii-table.com 頁面關於 Ansi Escape Sequences 的標題設置圖形模式下,您可以找到有關顏色和其他自定義終端輸出技巧的更完整列表。 4. 編譯它(**注意:**從這裡到最後我假設你的工作目錄是
Linux-PAM-1.1.8
,我們一開始 cd 到的同一個目錄,即 Linux-PAM 包的“根”目錄):# ./configure # make
- 備份您現有
pam_mail.so
的,以防新系統破壞您的系統(我懷疑它會破壞,但將原始文件安全保存總是好的):# cp /lib/i386-linux-gnu/security/pam_mail.so ~/
- 將文件複製
modules/pam_mail/.libs/pam_mail.so
到/lib/i386-linux-gnu/security/
:# cp modules/pam_mail/.libs/pam_mail.so /lib/i386-linux-gnu/security/
- 註銷並再次登錄(或啟動新的 ssh 會話,無論如何),您應該會看到紅色的“無郵件”。消息(假設您沒有新郵件)。
舊的,過時的答案
/etc/pam.d/system-login
可以通過更改文件中的以下行來禁用郵件消息session optional pam_mail.so dir=/var/spool/mail standard
到
session optional pam_mail.so dir=/var/spool/mail nopen
郵件資訊之前的文本在 中
/etc/motd
,您可以在使用 ssh 登錄時禁用它,方法是將以下行放入~/.ssh/config
:PrintMotd no