我可以自定义“您有新邮件”消息吗

我可以自定义“您有新邮件”消息吗

我正在尝试修改You have new mail当您通过 SSH 登录时 MOTD 下面显示的消息。我的目标是使该消息更加明显(明亮的颜色会很棒),以便在我登录时引起我的注意。

答案1

在 Bash 中,可以使用 MAILPATH 设置自定义消息。手册页有这个例子:

MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"'

尝试一下:

$ export MAILPATH="$MAIL?\"Santa was here.\""
$
$
$
$ 
"Santa was here."

哦,呃,好吧。一定是误读了那里的手册页。

明亮的颜色会很棒

所以我们必须偷运一些颜色转义码进入消息...

$ esc=$'\e'
$ export MAILPATH="$MAIL?$esc[1;37;44mREAD YOUR MAIL RIGHT NOW$esc[0m"
$ echo $MAILPATH
/var/spool/mail/frostschutz?READ YOUR MAIL RIGHT NOW
$
$
READ YOUR MAIL RIGHT NOW

我不知道如何给这里的东西上色,想象一下它在明亮的白蓝色中尖叫。颜色选择取决于品味和本地终端配色方案设置。

另请检查 MAILPATH 是否尚未使用,并且 MAIL 实际上具有用于 MAILPATH 的正确路径。

答案2

我认为您所询问的文本是由libpam 模块 pam_mail。无法自定义输出的文本。

我最近提交了关于模块某些文本更改的错误这使得一眼看出您有邮件变得不太容易,在寻找我可以自己做的解决方案时,我发现没有 ENV 变量或任何可以自定义该文本的内容。这对于我提交的错误来说是一个很好的解决方案。

另外,FWIW,环境变量是模块中的一个可配置选项,默认情况下它在 Ubuntu 中通过以下选项$MAIL在文件中关闭:/etc/pam.d/sshdnoenv

# Print the status of the user's mailbox upon successful login.
session    optional     pam_mail.so standard noenv # [1]

相关内容