我在 VPS 上使用 Fedora 28 x64。我已将 postfix 设置为仅发送邮件服务器,并使用 OpenDKIM 来签署外发电子邮件。
Postfix 通过 unix 套接字设置连接到 OpenDKIM/run/opendkim/opendkim.sock
权限/run/opendkim/
如下
drwx------. 2 opendkim opendkim 80 Jul 13 00:05 opendkim
为了使 Postfix 连接到 OpenDKIM milter,我已在 OpenDKIM 单元文件中更改Group
为并添加.这是整个文件。postfix
RuntimeDirectoryMode=0750
opendkim.service
地点:/usr/lib/systemd/system/opendkim.service
[Unit]
Description=DomainKeys Identified Mail (DKIM) Milter
Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html
After=network.target remote-fs.target nss-lookup.target syslog.target
[Service]
Type=forking
User=opendkim
Group=postfix
PIDFile=/run/opendkim/opendkim.pid
EnvironmentFile=-/etc/sysconfig/opendkim
ExecStart=/usr/sbin/opendkim $OPTIONS
ExecReload=/bin/kill -USR1 $MAINPID
RuntimeDirectory=opendkim
RuntimeDirectoryMode=0750
[Install]
WantedBy=multi-user.target
我面临的问题是,仅当我手动重新启动 OpenDKIM 服务时才应用 , , 值User
。OpenDKIM 可以通过.Group
RuntimeDirectoryMode
systemctl enable opendkim
但重启VPS后,目录权限是一样的。
drwx------. 2 opendkim opendkim 80 Jul 13 00:05 opendkim
我必须运行systemctl restart opendkim
才能将权限更改为
drwxr-x---. 2 opendkim postfix 80 Jul 13 00:05 opendkim
知道为什么会发生这种情况吗?我这里缺少什么吗?
答案1
opendkim 包包含一个 systemd-tmpfiles 配置,它/run/opendkim
在启动时创建目录并设置其所有权和权限。
[root@localhost ~]# cat /etc/tmpfiles.d/opendkim.conf
D /var/run/opendkim 0700 opendkim opendkim -
因此,您对 systemd 服务单元的自定义将在启动时被覆盖。
根据教程从随包附带的 README.fedora 链接,您应该让 Postfix 通过端口 8891 上的本地 TCP 套接字(而不是通过其 UNIX 套接字)与 OpenDKIM 通信。所以不需要改变临时目录的权限。不过,您确实需要更改您的 Postfix main.cf
:
smtpd_milters = inet:127.0.0.1:8891
您还应该将 opendkim 配置恢复为其出厂默认值。
## Create a socket through which your MTA can communicate.
Socket inet:8891@localhost