权限错误:dovecot 日志

权限错误:dovecot 日志

我正在尝试在我的 centOS 服务器上安装 exim + dovecot。当我尝试以 root 身份运行它时,我收到以下消息:

启动 Dovecot Imap:错误:无法写入日志目录 /var/log:权限被拒绝致命:/etc/dovecot.conf 中的配置无效

我甚至尝试将权限设置为 777,但这没有帮助。我也遇到了与 dovecot.conf 相同的问题,我通过删除 dovecot.conf 并重新创建它解决了这个问题。非常感谢任何帮助。我的 dovecot.conf 如下所示:

log_path = /var/log/dovecot.log

login_greeting = pop3/imap service.

protocol imap {

}

protocol pop3 {

}
pop3_uidl_format = %08Xu%08Xv

protocol lda {

  postmaster_address = [email protected]

  mail_plugin_dir = /usr/lib/dovecot/lda

}

auth default {

  mechanisms = plain login cram-md5 digest-md5

  passdb passwd-file {

  args = /etc/dovecot.passwd

  }

  userdb passwd-file {

  args = /etc/dovecot.passwd

  }

  user = root

  socket listen {

 client {

`}

答案1

这是一个老话题,但我最近遇到了类似的问题,因此着手修复它。

我有一台装有 dovecot 的服务器,它似乎以非 root 用户身份运行(父进程以 root 身份运行,但服务的子进程以 身份运行mail)。如果您使用第三方控制面板管理服务器,而该控制面板使用非标准权限配置各种服务或应用程序,则有时会发生这种情况。

由于没有为它们配置 logrotate 规则,服务器最终几乎填满了它的磁盘,但是在删除日志并重新启动 dovecot 服务后:尽管日志文件最初创建正常,但没有收到任何邮件!(我不需要这些touch文件)。

直到第一次重启 dovecot 后,我​​发送了一封测试邮件,邮件没有到达,我才注意到这个问题。不过,我随后收到了一封发送到我发送测试帐户的消息延迟通知,其中包含来自服务器的 dovecot.log 错误消息。

我首先运行ps aux | grep dovecot以识别正在运行的用户 - 它表明某些进程以 身份运行,root但其他进程以 身份运行mail

在服务器的中dovecot.conf,对于所有的service声明它也有user = mailgroup = mail行。

因此,我运行(以 root 身份或使用 sudo)

chown mail:mail /var/log/dovecot*.log

然后跑了service dovecot restart

电子邮件又开始流动了。请注意,在这台特定的机器上,dovecot.log 只记录服务重启,因为它被设置为详细日志记录;所有其他信息都归档到和dovecot-info.logdovecot-debug.log

我可以通过跟踪邮件日志来查看到达和发送的电子邮件:

tail -fn 100 /var/log/maillog(这可能mail.log对你来说是一个类似的名称)。

答案2

请注意,消息是can't write to log directory /var/log 从您的帖子中无法清楚看出您是否更改了 /var/log 或 /var/log/dovecot.log 上的权限。

/var/log 通常由 root 拥有,权限为 755。dovecot 应该以 root 身份运行:

Normally Dovecot logs everything through its master process, which is running as root.

从鸽舍本地投递代理 wiki

所有这些让我怀疑您以某种方式以其他非 root 用户身份启动了 dovecot。请提供有关您如何启动 dovecot 的信息。通常,它由系统启动脚本完成(以 root 身份)。或者,您可以尝试以 root 身份在命令行上启动 dovecot,使用

sudo /usr/sbin/dovecot

看看是否有效。但这只是为了排除故障,您需要通过系统启动脚本自动启动它。

答案3

当然,你可以继续尝试解决它,我相信你会的,但在这种情况下,当事情变得混乱时,最快(不是最好)的方法是:

yum remove dovecot
yum install dovecot

你完成了 ;)

相关内容