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


14

我想在FreeBSD 9.1中禁用mailcheck。我的登录shell是BASH,因此我尝试添加

unset MAILCHECK

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

有办法摆脱这些消息吗?


通常,您只是将root的邮件转发到其他地方(例如转到您实际检查的邮箱),但是如果您希望邮件继续发送root,但不希望邮件标语,则下面的答案是不错的选择。
voretaq7

Answers:


5

除了Dennis的答案外,FreeBSD还MAILdefault登录类中的所有用户设置了环境变量。这是在/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)有关登录功能数据库的更多信息。


6

这些消息可能是定期报告。设置它很常见daily_show_success=NO/etc/periodic.conf因此它不会生成“万事如意”消息。另外,daily_output="$destination"应将其设置为您的电子邮件地址或可以监视的日志文件。可以为weekly_monthly_-可能设置相同。

您可以通过启动maild *删除所有邮件并q退出来删除这些电子邮件。

禁用邮件检查通常是一个错误。您可能想知道,如果守护程序配置不正确,无法将邮件传递到本地根目录,则可能需要说些重要的信息,并且如果禁用mailcheck,您将错过这些消息。


4

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

您将需要检查是否MAILCHECK在以后覆盖启动文件的启动文件序列中进行了设置unset

请注意,启动文件的处理过程如下(来自Bash手册)(重点是我的):

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

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

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

启动不是登录外壳程序的交互式外壳程序时,如果该文件存在,则Bash从〜/ .bashrc读取并执行命令。使用--norc选项可以禁止这种情况。--rcfile file选项将强制Bash从文件而不是〜/ .bashrc中读取并执行命令。

因此,通常,您的〜/ .bash_profile包含以下行

如果[-f〜/ .bashrc]; 然后 。〜/ .bashrc; 科幻

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.