我正在尝试在我的 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 = mail
和group = mail
行。
因此,我运行(以 root 身份或使用 sudo)
chown mail:mail /var/log/dovecot*.log
然后跑了service dovecot restart
电子邮件又开始流动了。请注意,在这台特定的机器上,dovecot.log 只记录服务重启,因为它被设置为详细日志记录;所有其他信息都归档到和dovecot-info.log
中dovecot-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
你完成了 ;)