根据一些研究更新了答案

根据一些研究更新了答案

我在装有 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 比特币哈希设备的状态。

我现在想从 mailutils 中为其余部分(尤其是该No mail.行)着色,并删除重复的“欢迎使用 Linux Mint”消息和换行符。

我一直在专门搜索 mailutils 部分,但在以下位置找不到任何对它的引用:

  • ~/.bashrc
  • 〜/.profile
  • /etc/配置文件
  • /etc/profile.d/*
  • /etc/bashrc
  • /etc/init.d/*
  • /etc/rc.local
  • /etc/rc*.d (1, 2, 3, 4, 5, 6, S)

那么 - 我如何找到这些消息的生成位置,以便我可以根据自己的喜好修改它们并为其着色?

答案1

根据一些研究更新了答案

删除重复的欢迎消息

  • 由于您使用 ssh 登录,因此第一条欢迎消息应该来自/etc/issue.net.要删除该消息,只需删除该文件的内容即可。
  • 要删除第二条欢迎消息,请删除 的内容/etc/motd

为有关邮件的行着色

为了给这条线着色,我能想到的最简单的选择需要相当多的低级工作:选择是你pam_mail.so自己修改和构建。

这些是修改它并安装修改版本的步骤

  1. 下载Linux-PAM 源代码来自 linux-pam.org(官方项目网站)
  2. 提取源代码(这将创建一个名为 的新目录Linux-PAM-1.1.8)并 cd 到该目录:

    # tar xzvf Linux-PAM-1.1.8.tar.gz
    # cd Linux-PAM-1.1.8
    
  3. 将文件中的以下行(以 开头的行+,总共 4 行)更改modules/pam_mail/pam_mail.c为以下 diff 显示的内容(使用 生成diff -u)(文件名pam_mail.c.new只是我可以生成该 diff 的临时文件):

    --- 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 转义序列的页面您可以找到有关颜色和有关自定义终端输出的其他技巧的更完整列表。

  4. 编译它(笔记:从这里到最后,我假设您的工作目录是Linux-PAM-1.1.8,与我们在开始时 cd 到的目录完全相同,即 Linux-PAM 包的“根”目录):

    # ./configure
    # make
    
  5. 备份现有文件pam_mail.so,以防新文件破坏您的系统(我怀疑它会破坏,但安全地保存原始文件总是好的):

    # cp /lib/i386-linux-gnu/security/pam_mail.so ~/
    
  6. 将文件复制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/
    
  7. 注销并再次登录(或启动新的 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

来自 archlinux 论坛的参考。

邮件信息之前的文本位于 中/etc/motd,您可以通过将以下行添加到 ssh 登录时禁用它~/.ssh/config

PrintMotd no

相关内容