0

我正在使用带有 Sinatra 的邮件库。它以前工作过;我不确定是什么变化导致了这个错误,但是现在当我查看时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
4

2 回答 2

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.

于 2015-03-11T21:29:31.530 回答
0

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

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

chmod 0640 config.autogenerated

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

于 2015-03-13T21:24:15.030 回答