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 11:55:20 +0200
committerFlorian Klink <flokli@flokli.de>2019-10-18 12:11:55 +0200
commit5e593038d1cf9ff151c01179c7722b765fa37765 (patch)
treea2b547bdf1a69594d75e3e8ef0ec5974d720045c /nixos/modules/services
parent334921ad31539786eb2aaaf71e258f51b9f4acbc (diff)
downloadnixlib-5e593038d1cf9ff151c01179c7722b765fa37765.tar
nixlib-5e593038d1cf9ff151c01179c7722b765fa37765.tar.gz
nixlib-5e593038d1cf9ff151c01179c7722b765fa37765.tar.bz2
nixlib-5e593038d1cf9ff151c01179c7722b765fa37765.tar.lz
nixlib-5e593038d1cf9ff151c01179c7722b765fa37765.tar.xz
nixlib-5e593038d1cf9ff151c01179c7722b765fa37765.tar.zst
nixlib-5e593038d1cf9ff151c01179c7722b765fa37765.zip
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 = {