我正在使用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
经过进一步检查,查看paniclog,我看到以下内容:
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
当我尝试删除此paniclog时,错误仍然存在。查看上述文件的权限,我看到:
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
答案 0 :(得分: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
。
答案 1 :(得分:0)
exim中存在导致Exim安全问题的错误,它允许外部第三方通过利用配置文件处理代码中的错误来远程访问系统。
因此,邮件系统运行的用户应该无法写入。请将模式设置为0644或0640。
chmod 0640 config.autogenerated
默认情况下,0644是debian策略,因此检查是什么打破了它并尝试运行update-exim4.conf以确保它以正确的模式重建。