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としてまだ表示されています。
これを分解してみましょう。
Umask=
はman systemd.exec
に記載されています。 man systemd.directives
をチェックすると、ドキュメント化されているmanページを見つけることができます。それは次のように文書化されています:
「ファイルモード作成マスクを制御します。」
/proc/<pid>/status
に表示される出力は、man proc
に記載されています。それは次のように文書化されています:
「プロセスumask」。
したがって、最初に、設定したsystemd
ディレクティブのテストが正しいかどうかが明確ではありません。より良いテストは、Dockerによって作成されたファイルを調べることです。 umask
は何として作成されたのですか?
次に、systemd
ディレクティブが実際に成立したことを確認します。次の出力を確認します。
systemd-analyze dump
出力でDocker
を検索すると、Umask
がsystemd
サービスに設定したDocker
が見つかります。 systemd
はあなたのumask
を期待通りに見ていますか?
あなたのsystemd
構文は正しいように見えるので、これはUmask=
ディレクティブが何をするのかについての誤解かもしれないと思います。