Systemdデバイスは、サービスの再起動時にユーザー、グループ、およびRuntimeDirectoryMode設定のみを適用します。

Systemdデバイスは、サービスの再起動時にユーザー、グループ、およびRuntimeDirectoryMode設定のみを適用します。

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ミルターに接続できるように、OpenDKIMユニットファイルに変更して追加しましたGroup。完全なファイルです。postfixRuntimeDirectoryMode=0750opendkim.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は通過できます。GroupRuntimeDirectoryModesystemctl 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パッケージには、/run/opendkim起動時にディレクトリを作成し、そのディレクトリの所有権と権限を設定するsystemd-tmpfiles構成が含まれています。

[root@localhost ~]# cat /etc/tmpfiles.d/opendkim.conf
D /var/run/opendkim 0700 opendkim opendkim -

したがって、システムサービスユニットのカスタマイズは起動時に上書きされます。


~によると地図時間パッケージに付属のREADME.fedoraリンクでは、Postfixに(UNIXソケットの代わりに)ポート8891のローカルTCPソケットを介して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

関連情報