From 5532065d0690645f0a813fed6e68163b0f4774d4 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Sun, 27 Oct 2019 00:36:21 +0200 Subject: [PATCH] nixos/acme: Fix allowKeysForGroup not applying immediately Previously setting `allowKeysForGroup = true; group = "foo"` would not apply the group permission change of the certificates until the service gets restarted. This commit fixes this by making systemd restart the service every time it changes. Note that applying this commit to a system with an already running acme systemd service doesn't fix this immediately and you still need to wait for the next refresh (or call `systemctl restart acme-`). Once everybody's service has restarted once this should be a problem of the past. --- nixos/modules/security/acme.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index e08c7e965eef9f..71ba03b88a38f0 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -210,6 +210,12 @@ in environment.REQUESTS_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; serviceConfig = { Type = "oneshot"; + # With RemainAfterExit the service is considered active even + # after the main process having exited, which means when it + # gets changed, the activation phase restarts it, meaning + # the permissions of the StateDirectory get adjusted + # according to the specified group + RemainAfterExit = true; SuccessExitStatus = [ "0" "1" ]; User = data.user; Group = data.group;