web-dev-qa-db-ja.com

systemdでDockerサービスのumaskを設定する方法

systemdを使用してDockerサービスを開始します(デフォルトの0022の代わりに)0002のumaskを使用します。だから私は/etc/systemd/system/docker.service.d/override.confの下にオーバーライドファイルを作成しました

[Service]
UMask=0002

そして、デーモンをsystemctl daemon-reloadでリロードし、Dockerサービスを再起動しました。しかし、/proc/<PID>/statusを見ると、0022がumaskとしてまだ表示されています。

2
schmunk

これを分解してみましょう。

Umask=man systemd.execに記載されています。 man systemd.directivesをチェックすると、ドキュメント化されているmanページを見つけることができます。それは次のように文書化されています:

「ファイルモード作成マスクを制御します。」

/proc/<pid>/statusに表示される出力は、man procに記載されています。それは次のように文書化されています:

「プロセスumask」。

したがって、最初に、設定したsystemdディレクティブのテストが正しいかどうかが明確ではありません。より良いテストは、Dockerによって作成されたファイルを調べることです。 umaskは何として作成されたのですか?

次に、systemdディレクティブが実際に成立したことを確認します。次の出力を確認します。

 systemd-analyze dump

出力でDockerを検索すると、Umasksystemdサービスに設定したDockerが見つかります。 systemdはあなたのumaskを期待通りに見ていますか?

あなたのsystemd構文は正しいように見えるので、これはUmask=ディレクティブが何をするのかについての誤解かもしれないと思います。

1
Mark Stosberg