为什么我必须手动将 /etc/services 和 /etc/resolv.conf 复制到 /var/spool/postfix/etc 中?

Ane*_*pic 5 postfix

我在安装 Postfix 时遇到了这个问题:

https://www.virtualmin.com/node/23909

即我收到错误:

postfix/smtp[130]: fatal: unknown service: smtp/tcp
Run Code Online (Sandbox Code Playgroud)

就像上面的网址一样,解决方案是手动复制/etc/services/etc/resolv.conf放入/var/spool/postfix/etc

我的印象是这种“刚刚开始发生”,以前不是问题,但是我只对 postfix main.cf 进行了看似无关的微小更改,所以我不明白为什么。

我所关注的 Postfix 安装教程没有提到必须手动复制这些文件的任何内容......这感觉就像 Postfix 应该自己做的事情,而不是出于某种原因。

是否有一些潜在的错误配置会导致这种情况?

小智 16

默认情况下,一些 Postfix 进程在 chroot 环境中运行。因此,通常会在启动时为他们提供必要的文件。

在我的 Debian 7 系统上,该文件/etc/init.d/postfix具有以下几行,用于复制 chroot 中的所有必要文件:

FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
        etc/nsswitch.conf etc/nss_mdns.config"
for file in $FILES; do
     [ -d ${file%/*} ] || mkdir -p ${file%/*}
     if [ -f /${file} ]; then rm -f ${file} && cp /${file} ${file}; fi
     if [ -f  ${file} ]; then chmod a+rX ${file}; fi
done
Run Code Online (Sandbox Code Playgroud)

奇怪的是你的安装不包括这个;你不应该在这里自己做任何事情。

你是如何安装 postfix 的?在哪个系统上?

  • 啊!我已经从通过`service postfix start`(即使用`/etc/init.d/postfix`)启动postfix切换到只做`postfix start`......回到`service postfix start`解决了它,肯定是因为上面的原因 (4认同)

Gre*_*egL 5

看来 Postfix 想要以 chroot 方式运行。请参阅此处以了解有关其含义的更多信息。

您可以Chroot使用 中的配置选项更改它/etc/postfix/master.cf