about summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2019-10-18 17:58:45 +0200
committerGitHub <noreply@github.com>2019-10-18 17:58:45 +0200
commitc41b37ef25eca512f2ec7195c80658e11f769ac4 (patch)
tree5e472b3b4323d8c5ad87fc309d991dbd253d4a5c /nixos/modules/services
parent8f0aba000b89ea7cdbf87956b664233a76347910 (diff)
parent5e593038d1cf9ff151c01179c7722b765fa37765 (diff)
downloadnixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.tar
nixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.tar.gz
nixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.tar.bz2
nixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.tar.lz
nixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.tar.xz
nixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.tar.zst
nixlib-c41b37ef25eca512f2ec7195c80658e11f769ac4.zip
nixos/networkmanager: use tmpfiles to setup state directories (#71322)
nixos/networkmanager: use tmpfiles to setup state directories
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/networking/networkmanager.nix22
1 files changed, 13 insertions, 9 deletions
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index 3f1d0727d9bc..45dc36e32402 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -24,9 +24,6 @@ let
 
   enableIwd = cfg.wifi.backend == "iwd";
 
-  # /var/lib/misc is for dnsmasq.leases.
-  stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";
-
   configFile = pkgs.writeText "NetworkManager.conf" ''
     [main]
     plugins=keyfile
@@ -472,17 +469,24 @@ in {
 
     systemd.packages = cfg.packages;
 
+    systemd.tmpfiles.rules = [
+      "d /etc/NetworkManager/system-connections 0700 root root -"
+      "d /etc/ipsec.d 0700 root root -"
+
+      "d /var/lib/dhclient 0755 root root -"
+      "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
+    ];
+
     systemd.services.NetworkManager = {
       wantedBy = [ "network.target" ];
       restartTriggers = [ configFile ];
 
-      preStart = ''
-        mkdir -m 700 -p /etc/NetworkManager/system-connections
-        mkdir -m 700 -p /etc/ipsec.d
-        mkdir -m 755 -p ${stateDirs}
-      '';
-
       aliases = [ "dbus-org.freedesktop.NetworkManager.service" ];
+
+      serviceConfig = {
+        StateDirectory = "NetworkManager";
+        StateDirectoryMode = 755; # not sure if this really needs to be 755
+      };
     };
 
     systemd.services.NetworkManager-wait-online = {