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


61

Ubuntu如何让系统管理员接收系统通知(通常采用发送到root帐户的电子邮件的形式)?

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

在几乎默认的Ubuntu 10.04安装中,除了存放在之外,我无法找到root邮件发生任何变化的方式/var/mail/root。用户应该如何1.发现它并2.在到达时阅读它?

我观察到,出于谨慎,安装程序已添加root: myusername到中/etc/aliases。回到安装系统的用户,如果他阅读了本地邮件。因此,在此过程中似乎有些退步。但这仍然不是一个完整的解决方案,因为不能期望Ubuntu用户知道他们有本地邮件,而应该设置邮件客户端来读取它。

添加:根据当前的答复,只要服务器用户知道该问题,就应该能够应对。很公平。但是考虑一下J.Random Desktop User,他不知道如何使用命令行,只知道如何单击邮箱图标来阅读他的邮件。如何通知他他的系统想告诉他一些信息?(如果不可避免,请由能力更强的用户进行一次干预。)


1
我设法让KMail使用发现的一些非常奇怪的hack来读取我的本地邮件,但是由于更新为11.10,我迷路了
Dirk Hartzer Waldeck 2011年

我最近做了这个主题很长的教程,虽然有关Thunderbird:看askubuntu.com/questions/192572/...

@Mik在顶部安装一些关于postfix的内容,可以在这里做出一个很好的答案。
吉尔斯2012年

@Gilles谢谢,尽管我可能不得不缩短或删除其他问题的答案,所以不会重复。

@Mik不,可以重新发布基本相同的答案(不完全正确,因为在这里您需要先安装MTA才能开始)。问题不是重复的:这里有答案对另一个问题不起作用,反之亦然。确实确实有时可以将90%的答案用于另一个问题,这很好。
吉尔斯

Answers:


33

Gilles的鼓励下,我改编并扩展了另一个答案:

(我正在运行Ubuntu 12.04.1 LTS,但常规设置过程应适用于以前和将来的Ubuntu)


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

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

因此,要安装程序,请运行

sudo apt-get install postfix

您可以在安装时对其进行配置,也可以拒绝报价并稍后运行

sudo dpkg-reconfigure postfix

创建重要的配置文件(/etc/postfix/main.cfg)。如果你手工编辑这个文件,但不建议使用,必须运行sudo newaliasessudo service postfix restart事后应用更改。

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

在此处输入图片说明

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

在此处输入图片说明

当提到/etc/aliasesRoot and Postmaster收件人(如上)时,您可以填写用户名,但是请阅读本教程的下一部分,确保检查别名文件是否正确。

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

postmaster:    root
root:   mike 

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

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

sudo touch /root/.forward

然后运行

sudo nano /root/.forward

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

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

sudo adduser $USER mail

然后注销并登录以使更改生效。就像某些文章所建议的那样,不需要文件chownchmod任何文件,将用户添加到邮件组是一种更好的做法,并且可以避免直接更改根文件系统上的权限。


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

在此处输入图片说明 在此处输入图片说明

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

在此处输入图片说明

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

转到帐户设置>传出服务器,然后选择添加一个新服务器。设置应如以下屏幕截图所示:

在此处输入图片说明

现在,最后编写一封邮件,以测试您的帐户root@localhost,然后几秒钟后,单击您帐户上的“获取邮件”。您应该会看到类似以下的电子邮件:

在此处输入图片说明

需要配置某些程序或日志,以便它们将邮件发送到root用户,但是可以根据需要确定。希望本文会很有用,因为设置Thunderbird接收本地邮件并不总是那么简单。


适用于17.04,我没有接触小组。
Artyom

21

如果这是一台服务器,我强烈建议您将root别名为真实的电子邮件地址,这样您就可以将电子邮件传递给管理员了。

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

到/ etc / aliases的末尾

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


1
谢谢,我想这对于服务器管理员来说已经足够了。但是我该如何向J.Random桌面用户解释这一点,他绝对不会使用命令行,但想知道他的磁盘是否出现故障?
吉尔斯(Gilles)2010年

1
您的问题开始了:“ Ubuntu系统管理员接收系统通知的方式是什么...”。但是无论如何,对于台式机用户来说,要注意系统消息,他们可以使用gnome-system-log查看日志(已作为gnome-utils软件包的一部分安装在默认的Ubuntu桌面上)或添加“ root:username ”到/ etc / aliases的末尾。我同意这是一个较弱的解决方案,也许应该提出一个错误以重新添加此功能,因为在默认的Ubuntu安装上没有GUI方法可以做到这一点。
理查德·霍洛威

服务器管理员的别名是最好的。您也可以sudo su-然后使用CLI客户端。但是,如果您认真管理一个盒子,请使用别名。普通用户无需查看此邮件。它们还有其他用于通知消息的方式。如果他们愿意,则可以创建别名。最好将其默认关闭。
coteyr 2012年

设置别名后,是否可以转发所有已经存在的邮件?
约翰

似乎没有/etc/aliases文件。这是否需要运行邮件服务器才能生成?
Thufir

11

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

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

您可以使用安装

sudo apt-get install nullmailer

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


+1感谢您的链接(以及其中包含的MTA概念)
msw

2

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

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


1
对于10.04中的测试用户,使用默认的基于gnome的界面,默认的基于kde的界面或默认的基于lxde的界面,我看不到任何一种通知/var/mail/$USER
吉尔斯

1

另一种选择-我将所有根邮件都存档到某些文件中,然后删除原始邮件。

我录制了一个脚本(这是关键部分)-

#!/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,等等。

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.