问题描述
系统管理员接收系统通知的Ubuntu方式是什么,通常采用发送到root帐户的e-mail的形式?
此类通知的示例是cron作业的输出,或degraded RAID notifications。
在一个非常默认的Ubuntu 10.04安装中,除了存放在/var/mail/root
中之外,我找不到root用户邮件发生的任何事情。用户如何发现它2.在它到达时阅读它?
我观察到,在安装时,安装人员将root: myusername
添加到/etc/aliases
。那么那时安装系统的用户如果他读了本地邮件。所以在这个过程中似乎有一个回归。这仍然不是一个完整的解决方案,因为不能指望Ubuntu用户知道他们有本地邮件,应该设置他们的邮件客户端来阅读它。
增加:在给出当前回复的情况下,服务器用户应该能够应对,只要他知道这个问题。很公平。但请考虑J. Random Desktop User,他不知道如何使用命令行,只知道如何单击邮箱图标来阅读他的邮件。如何通知他的系统想要告诉他什么? (如果不可避免的话,允许更有能力的用户进行one-time干预。)
最佳解决办法
在Gilles的评论中鼓励,我改编并扩展了另一个答案:
(我正在运行Ubuntu 12.04.1 LTS,但一般的设置过程应该适用于以前和未来的Ubuntus)
首先要安装邮件传输代理(MTA),以便将邮件中继到邮件用户代理(MUA),例如Thunderbird
。这只是必要的,因为我们正在处理本地邮件,并希望能够发送和接收它;对于普通的远程gmail类型帐户,只需要一个用户代理,例如Thunderbird
。
我使用postfix
,它本身是sendmail
的替代品,其中有商业和开源版本。有关postfix功能的更多信息,请访问official site,如果出现任何问题,用户可能会发现mailing lists包含有用的信息。
所以,要安装程序,请运行
sudo apt-get install postfix
您可以在安装时配置它,也可以拒绝提供并稍后运行
sudo dpkg-reconfigure postfix
创建重要的配置文件(/etc/postfix/main.cfg
)。如果您曾手动编辑此文件(不一定推荐),则必须先运行sudo newaliases
和sudo service postfix restart
以应用更改。
虽然您可能希望应用某些特定设置,但Postfix
设置非常简单。在下面的第一个屏幕中,您必须为邮件选择本地选项:
然后在下一个屏幕上选择您的’mail name’;它通常与/etc/hostname
相同。您可以接受以下大多数屏幕的默认值。
当它提到/etc/aliases
和Root和Postmaster收件人时(如上所述),您可以填写您的用户名,但请确保通过阅读本教程的下一部分来检查您的别名文件是否应该如此。
首先,如同建议的in this discussion,如果设置正确,您的/etc/aliases
应该是这样的:
postmaster: root
root: mike
如果没有,请使用sudo nano /etc/aliases
进行编辑,然后运行sudo newaliases
和sudo service postfix restart
以更新配置。 Postfix's
别名功能允许重定向邮件,因此设置对于本教程的其余部分非常重要。
正如above link中所述,您需要创建一个包含您的用户名和localhost的.forward
文件:例如mike@localhost
以便将root的邮件转发给您。为此,请输入以下命令:
sudo touch /root/.forward
然后跑
sudo nano /root/.forward
放置您的用户:例如mike@localhost
在文件中并保存。
此外,我发现有必要将您的用户添加到邮件组,以便Thunderbird
可以访问邮件文件:
sudo adduser $USER mail
然后注销并登录以使更改生效。有些文章可能会建议,不需要chown
或chmod
任何文件,并且将您的用户添加到邮件组是更好的做法,并且避免直接更改根文件系统上的权限。
现在为Thunderbird
配置。转到编辑>帐户设置>帐户操作>添加其他帐户>选择Unix spoolmail,然后在下一个屏幕中将您的用户名放在第一个框中,并将yourusername@localhost
放在第二个框中。
现在,在帐户设置中转到新帐户并选择服务器设置,然后选择本地目录为/var/mail
或/var/mail/username
(如果已设置),如下面的屏幕截图所示。
根据说明in this article,如果要通过向root@localhost
发送邮件然后单击Thunderbird中的获取邮件来接收它来测试帐户,则需要配置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的新密码。