管理员如何阅读root的邮件?

系统管理员接收系统通知的Ubuntu方式是什么,通常采用发送到root帐户的电子邮件的forms?

此类通知的示例包括cron作业的输出或降级的RAID通知 。

在一个非常默认的Ubuntu 10.04安装中,除了存放在/var/mail/root之外,我找不到root用户邮件发生任何变化的方法。 用户如何发现它2.在它到达时阅读它?

我观察到,在warty上,安装程序将root: myusername添加到/etc/aliases 。 那么那时安装系统的用户如果他读了本地邮件。 所以在这个过程中似乎有一个回归。 这仍然不是一个完整的解决方案,因为不能指望Ubuntu用户知道他们有本地邮件,应该设置他们的邮件客户端来阅读它。

增加 :在给出当前回复的情况下,服务器用户应该能够应对,只要他知道这个问题。 很公平。 但请考虑J. Random Desktop User,他不知道如何使用命令行,只知道如何单击邮箱图标来阅读他的邮件。 如何通知他的系统想要告诉他什么? (如果这是不可避免的,允许更有能力的用户进行一次性干预。)

在Gilles的评论中鼓励,我改编并扩展了另一个答案:

  • 如何在雷鸟中阅读本地电子邮件?

(我正在运行Ubuntu 12.04.1 LTS,但一般的设置过程应该适用于以前和未来的Ubuntus)


首先要做的是安装邮件传输代理(MTA),以便将邮件中继到邮件用户代理(MUA),例如Thunderbird 。 这只是必要的,因为我们正在处理本地邮件,并希望能够发送和接收它; 使用普通的远程gmail类型帐户,只需要像Thunderbird这样的用户代理。

我使用postfix ,它本身是sendmail的替代品,其中有商业和开源版本。 有关postfixfunction的更多信息,请访问官方网站 ,如果出现任何问题,用户可能会发现邮件列表包含有用的信息。

所以,要安装程序,请运行

 sudo apt-get install postfix 

您可以在安装时配置它,也可以拒绝提供并稍后运行

 sudo dpkg-reconfigure postfix 

创建重要的配置文件( /etc/postfix/main.cfg )。 如果您手动编辑此文件(不一定建议使用),则必须先运行sudo newaliasessudo service postfix restart以应用更改。

虽然您可能希望应用某些特定设置,但Postfix设置非常简单。 在下面的第一个屏幕中,您必须为邮件选择本地选项:

在此处输入图像描述

然后在下一个屏幕上选择您的“邮件名称”; 它通常与/etc/hostname相同。 您可以接受以下大多数屏幕的默认值。

在此处输入图像描述

当它提到/etc/aliases以及Root和Postmaster收件人 (如上所述)时,您可以填写您的用户名,但请确保通过阅读本教程的下一部分来检查您的别名文件是否应该如此。

首先,正如本讨论中所建议的那样 ,如果设置正确, /etc/aliases应该是这样的:

 postmaster: root root: mike 

如果没有,用sudo nano /etc/aliases编辑它,然后运行sudo newaliasessudo service postfix restart以便更新配置。 Postfix's别名function允许重定向邮件,因此设置对于本教程的其余部分非常重要

如上面的链接中所述,您需要创建一个包含用户名和localhost的.forward文件:例如mike@localhost以便将root用户的邮件转发给您。 为此,请输入以下命令:

 sudo touch /root/.forward 

然后跑

 sudo nano /root/.forward 

放置您的用户:例如文件中的mike@localhost并保存。

此外 ,我发现有必要将您的用户添加到邮件组,以便Thunderbird可以访问邮件文件:

 sudo adduser $USER mail 

然后注销并登录以使更改生效。 没有必要chownchmod任何文件,正如一些文章可能建议的那样,将用户添加到邮件组是更好的做法,并避免直接更改根文件系统的权限。


现在为Thunderbird配置。 转到编辑>帐户设置>帐户操作>添加其他帐户>选择Unix spoolmail,然后在下一个屏幕中将您的用户名放在第一个框中,并将您的用户名yourusername@localhost放在第二个框中。

在此处输入图像描述在此处输入图像描述

现在,在帐户设置中转到新帐户并选择服务器设置,然后选择本地目录为/var/mail/var/mail/username (如果设置),如下面的屏幕截图所示。

在此处输入图像描述

根据本文中的说明,如果要通过向root@localhost发送邮件然后单击Thunderbird中的get mail来接收它来测试帐户,则需要配置smtp服务器,因为root的邮件将被重定向到youruser@localhost

转到帐户设置>外发服务器,然后选择添加新服务器。 设置应如下面的屏幕截图所示:

在此处输入图像描述

现在,最后通过撰写邮件到root@localhost来测试您的帐户,然后几秒钟后点击您帐户上的邮件。 你应该看到这样的电子邮件:

在此处输入图像描述

需要配置一些程序或日志,以便它们将邮件发送到root,但这可以在您找到需要时决定。 希望本文有用,因为设置Thunderbird以接收本地邮件并不总是直截了当。

如果这是一台服务器,我强烈建议您将root别名为真实的电子邮件地址,这样您就可以将电子邮件发送给管理员这就像添加一样简单

 # Person who should get root's mail root: all_administrators@mydomain.com 

到/ etc / aliases的末尾

或者,您可以将邮件配置为别名为您的本地用户名,然后当您登录时,您将收到消息“您有邮件”,您可以使用mail命令或安装pine / mutt / alpine或类似的东西来检查服务器..

我个人使用名为nullmailer的邮件代理。 它充当邮件代理,并将发送到root的所有邮件传输到您选择的邮件地址。

您需要在/ etc / nullmailer下的conf文件中设置其设置。 基本上:给它你的邮件提供者地址和凭据,以及你想要接收根电子邮件的地址。

你可以安装它

 sudo apt-get install nullmailer 

您可以在此处获取有关其设置的更多信息: http : //jviz.research.iat.sfu.ca/wiki/index.php?title = HOWTO_Setup_Nullmailer

目前没有通知用户根本地邮箱甚至存在,因为user != root如果需要检查邮箱,可以键入以下内容: sudo mail以在root下启动邮件应用程序。

您也可以在该服务器上以root用户身份登录。 要解锁root密码,只需输入: sudo passwd并输入root的新密码。

另一种方法 – 我将所有根邮件归档到某些文件,然后删除原始邮件。

我是一个脚本(这是关键部分) –

 #!/bin/bash if `/usr/bin/mail -e`; then /usr/bin/mail --print 2>&1 > /tmp/email_${date +"%Y-%m-%d_%H.%M").log echo 'd *' | /usr/bin/mail -N > /dev/null fi exit 0 

这可以保持整洁,我可以留意它。 我可以通过电子邮件将每日邮件文件发送到外部电子邮件ID等…