Dovecot 未创建 /var/spool/postfix/private/auth

Dovecot 未创建 /var/spool/postfix/private/auth

我正在将 Ubuntu 14.04 postfix 邮件安装从一台机器移到另一台机器。当前设置与 Ubuntu 的默认 postfix 和 dovecot 设置配合得很好,因此用户可以使用 SMTP 身份验证等。

因此我将相关配置文件复制到新机器(也运行 Ubuntu 14.04)并在进行必要的 DNS 更改后在那里启动了 postfix。

但我在新机器的邮件日志中看到了这个:

10 月 28 日 14:18:50 lorina postfix/smtpd[13445]: 警告:SASL:连接到 private/auth 失败:没有此文件或目录

10 月 28 日 14:18:50 lorina postfix/smtpd[13445]: 致命:没有 SASL 身份验证机制

10月28日 14:18:51 lorina postfix/master[13440]: 警告: 进程 /usr/lib/postfix/smtpd pid 13445 退出状态 1

10 月 28 日 14:18:51 lorina postfix/master[13440]: 警告:/usr/lib/postfix/smtpd:错误的命令启动 -- 节流

Postfix 设置为使用以下内容:

smtpd_sasl_type=dovecot
smtpd_sasl_path = private/auth

在 dovecot 配置中我有:

  # Postfix smtp 身份验证
  unix_listener /var/spool/postfix/private/auth {
    模式 = 0666
  }

但是,我发现新机器上不存在 /var/spool/postfix/private/auth。

我尝试过重启机器以防任何服务无法正常工作。这个文件是什么时候生成的?我该如何创建它?

答案1

回答您的问题:

  • 运行 dovecot 后会创建套接字。dovecot 为 postfix 提供服务,因此 dovecot 应该会创建它。dovecot 启动后会立即创建它。如果重新启动 dovecot 后没有套接字,请检查 dovecot 日志,而不是 postfix。
  • 如何创建它?你肯定不应该手动创建它。

我认为您的设置缺少一些设置(Postfix 和 Dovecot)并且依赖于默认设置。这可能因机器而异。

多夫科特

我想说最大的问题是你没有告诉 dovecot 谁应该拥有套接字。它通常分配给 postfix 用户和组,如下所示:

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}

检查套接字父目录的所有权(“私有”)它被分配给哪个用户和组?如果要能够在目录中写入,您需要 dovecot 使用相同的用户。

后缀

smtpd_sasl_path 设置与queue_directory 设置相关。默认情况下,queue_directory 应该是 /var/spool/postfix,但将其明确化也无妨。

queue_directory = /var/spool/postfix

从日志中可以看出,您已在 postfix 中启用了 sasl,尽管您的配置没有说明这一点。但是在哪个代理上启用了 sasl?如果您在 main.cf 中设置 smtpd_sasl_auth_enable=yes,它将应用于所有代理,包括端口 25 上的 smtpd。我认为最好只在 master.cf 中的提交代理(在端口 587 上运行)上使用它。如果您编辑现有的 master.cf,只需取消注释提交行和下面您需要的任何选项行。

submission inet n        -       -       -       -       smtpd
-o syslog_name=postfix/submission
-o smtpd_sasl_auth_enable=yes

答案2

报告的错误似乎具有误导性。事实上,配置文件中有一个 Dovecot 未找到的 SSL 证书路径。因此它无法正常启动,因此无法在 /var/spool/postfix/private/auth 中创建套接字。

相关内容