可以禁用“您在 /var/mail/root 中有新邮件”吗?

可以禁用“您在 /var/mail/root 中有新邮件”吗?

我想禁用 FreeBSD 9.1 中的邮件检查。我的登录 shell 是 BASH,因此我尝试添加

unset MAILCHECK

/root/.bashrc和中/root/.profile,但我仍然收到这些消息。

问题

有没有什么办法可以消除这些消息?

答案1

除了 Dennis 的回答之外,FreeBSD 还MAIL为登录类中的所有用户设置了环境变量default。这是在 中/etc/login.conf

您可以通过多种方式改变这一点:

  1. 编辑/etc/login.confMAIL=/var/mail/$setenv行中删除。然后您需要通过运行来编译登录数据库cap_mkdb /etc/login.conf

  2. 创建仅适用于您或一组用户的新登录类别。使用 为每个用户设置此项pw usermod <username> -L <class>

  3. 创建用户特定的~/.login.conf。此文件应有一个名为 的记录me。这可以覆盖全局设置的子集。同样,此文件需要使用 进行编译cap_mkdb

login.conf(5)有关登录功能数据库的更多信息。

答案2

daily_show_success=NO这些消息可能是定期报告。设置是很常见的,/etc/periodic.conf这样它就不会生成“一切顺利”的消息。此外,daily_output="$destination"应该设置为您的电子邮件地址或您可以监控的日志文件。可以为weekly_和设置相同的值monthly_- 可能应该设置。

mail您可以通过启动、d *删除所有消息和q退出来删除这些电子邮件。

禁用邮件检查通常是一个错误。如果守护进程配置不正确,无法将邮件传递到本地根目录,那么您可能要知道,它可能有重要信息要说,而如果您禁用邮件检查,您将错过这些消息。

答案3

这应该可以解决 root 登录时出现的消息问题。如果您以其他用户身份登录,则需要将其添加到~/.bashrc要为其禁用它的每个用户的文件中。或者,您可以将其放在中央启动文件中:/etc/profile以使其对所有用户生效。

您需要检查是否MAILCHECK在启动文件序列的稍后位置设置以覆盖您的unset

请注意,启动文件的处理方式如下(从Bash 手册)(重点是我的):

作为交互式登录 shell 调用,或者使用 --login

当 Bash 作为交互式登录 shell 或使用 --login 选项作为非交互式 shell 调用时,它首先从文件 /etc/profile 读取并执行命令(如果该文件存在)。 读完该文件后,它按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的文件中读取并执行命令. 启动 shell 时可以使用 --noprofile 选项来抑制此行为。

当登录 shell 退出时,Bash 将从文件 ~/.bash_logout(如果存在)中读取并执行命令。作为交互式非登录 shell 调用

当启动非登录 shell 的交互式 shell 时,如果 ~/.bashrc 文件存在,Bash 会从该文件读取并执行命令。可以使用 --norc 选项禁止此操作。--rcfile 文件选项将强制 Bash 从文件而不是 ~/.bashrc 读取并执行命令。

因此,通常你的 ~/.bash_profile 包含以下行

如果 [ -f ~/.bashrc ]; 则 . ~/.bashrc; fi

在任何特定于登录的初始化之后(或之前)。

答案4

编辑文件/etc/crontab并将行更改MAILTO=rootMAILTO=""

来源:http://michaelprogramming.blogspot.com/2014/01/disable-you-have-new-mail-in.html

相关内容