Como definir o umask do serviço Docker com o systemd

3

Gostaria de iniciar meu serviço Docker com systemd com umask de 0002 (em vez do padrão 0022). Então eu criei um arquivo de substituição sob /etc/systemd/system/docker.service.d/override.conf com

[Service]
UMask=0002

E recarregou o daemon com systemctl daemon-reload e também reiniciou o serviço do Docker. Mas quando eu olho para /proc/<PID>/status eu ainda vejo 0022 como umask, alguma idéia do que estou fazendo errado?

    
por schmunk 13.03.2018 / 10:23

1 resposta

0

Vamos analisar isso.

Umask= está documentado em man systemd.exec . Você pode descobrir qual página do manual está documentada, verificando man systemd.directives . Está documentado como:

"Controls the file mode creation mask. "

A saída que você vê em /proc/<pid>/status está documentada em man proc . Está documentado como:

"Process umask".

Primeiro, não está claro se a sua verificação é o teste certo da diretiva systemd que você definiu. Um teste melhor seria examinar um arquivo criado pelo Docker. Qual umask foi criado como?

Em segundo lugar, verifique se a diretiva systemd realmente foi ativada. Revise a saída de:

 systemd-analyze dump

Pesquise na saída por Docker e, a partir daí, você poderá encontrar o Umask que systemd definiu para o serviço Docker . O systemd vê seu umask como você espera?

Sua sintaxe systemd parece correta, então acho que isso pode ser um mal-entendido sobre o que a diretiva Umask= faz.

    
por 13.03.2018 / 18:07