Systemd 單元僅在服務重新啟動時應用使用者、組和 RuntimeDirectoryMode 設置
我在 VPS 上使用 Fedora 28 x64。我已經使用 OpenDKIM 將 postfix 設置為僅發送郵件伺服器,用於簽署傳出電子郵件。
Postfix 通過 unix socket setup 連接到 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
我面臨的問題是
User
,Group
,RuntimeDirectoryMode
值僅在我手動重新啟動 OpenDKIM 服務時應用。OpenDKIM 已啟用以在系統啟動時通過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
知道為什麼會這樣嗎?我在這裡缺少什麼嗎?
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 套接字與 OpenDKIM 對話,而不是通過其 UNIX 套接字。因此無需更改臨時目錄的權限。您確實需要更改您的 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