【问题标题】:Mail stopped working with exim error邮件因 exim 错误而停止工作
【发布时间】:2015-03-06 18:20:03
【问题描述】:

我正在使用带有 Sinatra 的 mail 库。它以前工作过;我不确定是什么变化导致了这个错误,但是现在当我查看mail.err 时,我看到了这个:

Mar 6 07:35:01 App exim4: ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
Mar 6 07:35:02 App exim4: PANIC: sending out e-mail warning has failed, exim has non-zero return code

经过进一步检查,查看恐慌日志,我看到以下内容:

2015-03-06 12:54:31 Exim configuration file /var/lib/exim4/config.autogenerated
has the wrong owner, group, or mode
2015-03-06 12:59:34 Exim configuration file /var/lib/exim4/config.autogenerated
has the wrong owner, group, or mode

当我尝试删除此恐慌日志时,错误仍然存​​在。查看上述文件的权限,我看到:

drwxrwxr-x  2 root root         4096 Jan 28 18:59 .
drwxrwxr-x 33 root root         4096 Jan 22 11:30 ..
-rwxrwxr-x  1 root root            4 May  3  2013 berkeleydbvers.txt
-rwxrwxr-x  1 root Debian-exim 23661 Jan 28 18:59 config.autogenerated

由于它以前工作过,我不知道为什么权限可能会出现问题,但如果是,我不确定是否正在访问它,以及需要哪些权限才能正常工作。任何建议将不胜感激!!!

权限详述如下:

/var/log/exim4$ namei -lm /var/lib/exim4/config.autogenerated
f: /var/lib/exim4/config.autogenerated
drwxr-xr-x root root        /
drwxrwxr-x root root        var
drwxrwxr-x root root        lib
drwxrwxr-x root root        exim4
-rwxrwx--- root Debian-exim config.autogenerated

【问题讨论】:

  • 尝试删除其他用户的读取和执行权限:chmod o-rx config.autogenerated。很奇怪,你这个目录下的所有文件都有执行权限。
  • @maxd 好点;不要认为任何事情都应该被执行;虽然问题仍然存在,但这肯定更好。欣赏指针。
  • 在任何情况下尝试检查权限和所有者使用命令:namei -lm /var/lib/exim4/config.autogenerated
  • @maxd 已发布;有趣。
  • 您确定问题中的信息准确吗?在您的代码的一个块中,该文件是 rwxrwxr-x,而在另一个块中,它是 rwxwx---。这两个块之间发生了什么变化?

标签: ruby email sendmail exim exim4


【解决方案1】:

配置文件不应该是可执行的,所以试试这个:

chmod 0660 config.autogenerated

这会将文件设置为为所有者和组读取和写入。

可能您的文件的权限已被更新更改:

update-exim4.conf 将输出文件的文件权限更改为环境变量 CFILEMODE 的值。如果 CFILEMODE 既未在 /etc/exim4/update-exim4.conf.conf 中设置,也未在环境中设置,则默认为 0644。如果您在其中保存敏感信息(LDAP 凭据等),请将其更改为 0640。

您的文件的权限可能被其他东西更改了,例如有错误的脚本或用户意外。您在同一目录中的 .txt 文件也有不正确的权限,因此一个很好的调查领域是查看文件修改时间,然后查看同时在您的系统上发生的其他情况。

您可能想查看附近的其他文件,看看它们是否也有意外的权限,例如您希望显示为可执行文件的纯文本文件。

根据我的经验,这种错误可能是由于过度热心的 cron 脚本执行递归 chmod 以使目录树可访问,例如 chmod o+rx /var

【讨论】:

    【解决方案2】:

    exim 中的错误导致 Exim 中的安全问题允许外部第三方通过利用配置文件处理代码中的错误来远程访问系统。

    所以它不应该被您的邮件系统运行的用户写入。请将模式设置为 0644 或 0640。

    chmod 0640 config.autogenerated
    

    0644 默认是 debian 策略,因此请检查是什么破坏了它并尝试运行 update-exim4.conf 以确保它以正确的模式重建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多